¿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?
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.
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);
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.
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');
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