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

Posted

技术标签:

【中文标题】在 Node.js 中获取父目录名称【英文标题】:Get parent directory name in Node.js 【发布时间】:2017-08-14 19:57:36 【问题描述】:

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

我想得到"FolderIWant"

我试过了:

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

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

【问题讨论】:

【参考方案1】:

虽然这里的答案有些奏效,但我发现使用流行的 app-root-path 模块是一个更好的锚点,可以从中指定路径。

import  path as arp  from 'app-root-path'
import path from 'path'

const root = path.resolve(arp, '../') // the parent of the root path

export const rootDirname = root

示例用法如下:

import  rootDirname  from './functions/src/utils/root-dirname'
import  getJsonFromFile  from './app/utils/get-json-from-file'

const firebaseJson = getJsonFromFile(`$rootDirname/firebase.json`)

这里可能不是最佳答案,但其他答案未涵盖的选项。

【讨论】:

【参考方案2】:
const path = require("path")
path.dirname(path.basename(__dirname))

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

process.mainModule 属性在 v14.0.0 中已弃用。如果 foo.js 由 node foo.js 运行(例如 somedir/foo.js"),

const path = require("path");

module.exports = path.dirname(require.main.filename);

结果:一些目录

Use require.main instead

【讨论】:

【参考方案5】:

Better use @danielwolf's answer instead


使用split()pop()

path.dirname(filename).split(path.sep).pop()

【讨论】:

【参考方案6】:

使用 06-2019 的节点时,我遇到了仅访问 filename 的问题。 因此,我只是稍微修改了一下并使用了:

path.dirname(__filename).split(path.sep).pop()

所以现在你得到的是你所在的当前目录的目录名,而不是完整路径。虽然之前的答案似乎对其他人有用,但对我来说,它导致了问题,因为节点正在寻找一个 const 或一个变量,但找不到。

【讨论】:

【参考方案7】:
const path = require('path');

module.exports = path.dirname(process.mainModule.filename)

在任何地方使用它来获取根目录

【讨论】:

它在 mainModule 处显示错误。未解析的变量 mainModule【参考方案8】:

Daniel Wolf 的回答是正确的,如果您想要父目录的完整路径:

require('path').resolve(__dirname, '..')

【讨论】:

【参考方案9】:

你要的是path.basename:

path.basename(path.dirname(filename))

【讨论】:

更好、更清洁的解决方案。

以上是关于在 Node.js 中获取父目录名称的主要内容,如果未能解决你的问题,请参考以下文章

如何在 node.js 中获取目录大小而不递归遍历目录?

将文件添加到目录时,在node.js中获取通知

如何使用pkg在Node.js程序中获取程序的当前目录?

获取执行 node.js 的目录

javascript [node.js 8+]递归获取目录中的所有文件

Node.js权威指南 - 在Node.js中操作文件系统