我正在使用Node.js,我想获取a的父目录名
文件。我有文件"../test1/folder1/FolderIWant/test.txt"
。
我想获得"FolderIWant"
。
我试过了:
var path = require('path');
var parentDir = path.dirname(filename);
但它会返回../test1/folder1/FolderIWant
。
答案 0 :(得分:102)
你想要的是path.basename
:
path.basename(path.dirname(filename))
答案 1 :(得分:36)
使用split()和pop():
path.dirname(filename).split(path.sep).pop()
答案 2 :(得分:4)
丹尼尔·沃尔夫(Daniel Wolf)的答案是正确的,如果您想要父目录的完整路径,也是如此:
require('path').resolve(__dirname, '..')
答案 3 :(得分:0)
const path = require('path');
module.exports = path.dirname(process.mainModule.filename)
在任何地方使用它来获取根目录
答案 4 :(得分:0)
使用截至06-2019的节点,我遇到了仅访问filename
的问题。
因此,我只是对其进行了一点修改并使用:
path.dirname(__filename).split(path.sep).pop()
现在,您将获得当前所在目录的目录名称,而不是完整路径。尽管先前的答案似乎可能对其他人有用,但对我来说却引起了问题,因为节点正在寻找const或变量,但找不到一个。
答案 5 :(得分:0)
process.mainModule
属性在v14.0.0
中已弃用。如果foo.js由node foo.js
运行(例如somedir / foo.js“),
const path = require("path");
module.exports = path.dirname(require.main.filename);
结果:somedir
答案 6 :(得分:0)
const path = require("path")
path.dirname(path.basename(__dirname))
答案 7 :(得分:0)
没有路径之类的任何节点模块的最简单方法。您可以通过以下方式轻松获得根文件夹名称。
var rootFolder = __dirname.split('/').pop();
console.log(rootFolder);