在Node.js中获取父目录名称

时间:2017-03-22 15:29:59

标签: node.js path

我正在使用Node.js,我想获取a的父目录名 文件。我有文件"../test1/folder1/FolderIWant/test.txt"

我想获得"FolderIWant"

我试过了:

var path = require('path');
var parentDir = path.dirname(filename);

但它会返回../test1/folder1/FolderIWant

8 个答案:

答案 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

Use require.main instead

答案 6 :(得分:0)

const path = require("path")
path.dirname(path.basename(__dirname))

答案 7 :(得分:0)

没有路径之类的任何节点模块的最简单方法。您可以通过以下方式轻松获得根文件夹名称。

var rootFolder = __dirname.split('/').pop();
console.log(rootFolder);