【问题标题】:Get parent directory name in Node.js在 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

【问题讨论】:

    标签: node.js path


    【解决方案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))
                  

                  【讨论】:

                  • 更好、更清洁的解决方案。
                  猜你喜欢
                  • 2019-12-17
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-07-31
                  相关资源
                  最近更新 更多