¿nodejs obtiene el nombre del archivo de la ruta absoluta?


Si hay alguna API podría recuperar el nombre del archivo de una ruta de archivo absoluta?

Por ejemplo "foo.txt" de "/var/www/foo.txt"

Sé que funciona con la operación de cadena, como fullpath.replace(/.+\//, '') pero quiero saber si hay una forma más 'formal', como file.getName() en Java, podría hacerlo.

¿NodeJS obtiene el nombre del archivo de la ruta absoluta?

Author: Damjan Pavlica, 2013-11-06

4 answers

Utilice el método basename del módulo path:

path.basename('/foo/bar/baz/asdf/quux.html')
// returns
'quux.html'

Aquí está la documentación de la que se toma el ejemplo anterior.

 343
Author: Victor Stanciu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-06 11:59:15

Para obtener la porción de nombre de archivo del nombre de archivo, se usa el método basename:

var path = require("path");
var fileName = "C:\\Python27\\ArcGIS10.2\\python.exe";
var file = path.basename(fileName);

Consola.log(archivo); Si desea el nombre del archivo sin la extensión, puede pasar la variable de extensión (que contiene el nombre de la extensión) al método basename diciéndole a Node que devuelva solo el nombre sin la extensión:

var path = require("path");
var fileName = "C:\\Python27\\ArcGIS10.2\\python.exe";
var extension = path.extname(fileName);
var file = path.basename(fileName,extension);

console.log(file);
 6
Author: Rubin bhandari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-24 06:24:05

Si ya sabe que el separador de ruta es / (es decir, está escribiendo para una plataforma/entorno específico), como se indica en el ejemplo de su pregunta, podría mantenerlo simple y dividir la cadena por separador:

'/foo/bar/baz/asdf/quux.html'.split('/').pop()

Eso sería más rápido (y más limpio imo) que reemplazar por expresión regular.

 0
Author: leo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-21 14:18:04

Para aquellos interesados en eliminar la extensión del nombre de archivo, puede usar https://nodejs.org/api/path.html#path_path_basename_path_ext

path.basename('/foo/bar/baz/asdf/quux.html', '.html');
 0
Author: Tigertron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-11 17:58:25