提问者:小点点

nodejs从绝对路径获取文件名?


如果有任何API可以从绝对文件路径检索文件名?

例如“foo.txt”来自“/var/www/foo.txt”

我知道它可以用于字符串操作,比如fullpath.replace(/.+\//,''),但是我想知道有没有一种更正式的方式,比如Java中的file.getname(),可以实现它。

NodeJS从绝对路径获取文件名?


共3个答案

匿名用户

使用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');