如何获取文件的目录?
例如,我传入一个字符串
C:\Program Files\nant\bin\nant.exe
Run Code Online (Sandbox Code Playgroud)
我想要一个能让我回归的功能
C:\Program Files\nant\bin
Run Code Online (Sandbox Code Playgroud)
我更喜欢内置函数来完成这项工作,而不是手动拆分字符串并排除最后一个.
编辑:我在Windows上运行
Pha*_*rus 21
我不知道是否有任何内置的功能,但它是非常直接的获得路径.
path = path.substring(0,path.lastIndexOf("\\")+1);
Run Code Online (Sandbox Code Playgroud)
W.P*_*rin 14
如果您使用Node.js,path模块非常方便。
path.dirname("/home/workspace/filename.txt") // '/home/workspace/'
Run Code Online (Sandbox Code Playgroud)
The*_*ver 10
使用:
var dirname = filename.match(/(.*)[\/\\]/)[1]||'';
Run Code Online (Sandbox Code Playgroud)
*基于lastIndexOf('/')或lastIndexOf('\')的答案容易出错,因为path可以是"c:\ aa/bb\cc/dd".
(Matthew Flaschen确实考虑到了这一点,所以我的回答是正则表达式)
没有完美的解决方案,因为此功能不是内置的,并且无法获得系统文件分隔符.你可以试试:
path = path.substring(0, Math.max(path.lastIndexOf("/"), path.lastIndexOf("\\")));
alert(path);
Run Code Online (Sandbox Code Playgroud)
是的,内置模块路径有 dirname() 函数,它可以为您完成这项工作。
const path = require("path");
file_path = "C:\\Program Files\\nant\\bin\\nant.exe" \\windows path
file_path = "C:/Program Files/nant/bin/nant.exe" \\linux path
path.dirname(file_path); \\gets you the folder path based on your OS
Run Code Online (Sandbox Code Playgroud)
我发现你的路径既不兼容 Windows 也不兼容 Linux。不要硬编码路径;相反,从基于您的操作系统的路径中获取引用。
我通常通过使用创建相对路径来解决这种情况path.join(__dirname, "..", "assets", "banner.json");。
这给了我一个无论您使用什么操作系统都可以工作的相对路径。
| 归档时间: |
|
| 查看次数: |
33280 次 |
| 最近记录: |