var path = require("path");
var fileName = "C:\\Python27\\ArcGIS10.2\\python.exe";
var file = path.basename(fileName);
console.log(file); // 'python.exe'
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'
var path = require("path");
var filepath = "C:\\Python27\\ArcGIS10.2\\python.exe";
var name = path.parse(filepath).name;
console.log(name); //python
var base = path.parse(filepath).base;
console.log(base); //python.exe
var ext = path.parse(filepath).ext;
console.log(ext); //.exe
9条答案
按热度按时间13z8s7eq1#
使用
path
模块的basename
方法:下面是上面示例的来源文档。
6ju8rftf2#
若要取得文件名称的文件名称部分,请使用basename方法:
如果需要不带扩展名的文件名,可以将extension变量(包含扩展名)传递给basename方法,告诉Node只返回不带扩展名的名称:
tuwxkamq3#
yftpprvb4#
对于那些对从文件名中删除扩展名感兴趣的人,可以使用https://nodejs.org/api/path.html#path_path_basename_path_ext
gz5pxeao5#
如果您已经知道路径分隔符是
/
(即您正在为特定的平台/环境编写代码),正如问题中的示例所暗示的那样,您可以保持简单,并通过分隔符拆分字符串:这将是faster(和干净的imo)比替换正则表达式。
再次强调:只有在你为特定环境编写的时候才这样做,否则就使用
path
模块,因为路径非常复杂。例如,Windows在很多情况下支持/
,但是not支持\\?\?
风格的前缀,用于共享网络文件夹等。在Windows上,上述方法注定要失败,迟早。wh6knrhe6#
path
是一个nodeJS module
,这意味着您不必安装任何软件包即可使用其属性。wfsdck307#
在NodeJS中,__filename.split(/|//).pop()在任何操作系统平台上都只返回绝对文件路径中的文件名。为什么需要关心记住/导入一个API,而这个正则表达式方法也让我们回忆我们的正则表达式技能。
zrfyljdw8#
因此Nodejs附带了一个名为
'__fileName'
的默认全局变量,它保存当前正在执行的文件。我的建议是将__fileName从任何文件传递给服务,以便动态检索fileName下面,我使用fileName字符串,然后基于
path.sep
拆分它。注意,path.sep避免了posix文件分隔符和windows文件分隔符的问题("/“和”\“的问题)。它要干净得多。获取子字符串,只获取最后一个分隔的名称,并将其与实际长度相减3,这本身就说明了问题。您可以编写这样的服务(请注意,这是在typescript中编写的,但您也可以用js编写)
zbsbpyhn9#
变量路径=需要('路径');
如果您的计算机上有一个文件名,那么您就可以使用这个文件名来创建一个文件。console.log(文件名);