如果有任何API可以从绝对文件路径检索文件名?
例如“foo.txt”
来自“/var/www/foo.txt”
我知道它可以用于字符串操作,比如fullpath.replace(/.+\//,'')
,但是我想知道有没有一种更正式的方式,比如Java中的file.getname()
,可以实现它。
NodeJS从绝对路径获取文件名?
使用path
模块的baseName
方法:
path.basename('/foo/bar/baz/asdf/quux.html')
// returns
'quux.html'
下面是上述示例的文档。
要获取文件名的文件名部分,使用basename方法:
var path = require("path");
var fileName = "C:\\Python27\\ArcGIS10.2\\python.exe";
var file = path.basename(fileName);
console.log(file); // 'python.exe'
如果想要不带扩展名的文件名,可以将扩展变量(包含扩展名)传递给basename方法,告诉Node只返回不带扩展名的名称:
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); // 'python'
对于有兴趣从文件名中删除扩展名的用户,可以使用https://nodejs.org/api/path.html#path_path_basename_path_ext
path.basename('/foo/bar/baz/asdf/quux.html', '.html');