【问题标题】:How to get specific file's directory name without full path in Node.js?如何在 Node.js 中获取没有完整路径的特定文件的目录名?
【发布时间】:2019-04-09 09:35:38
【问题描述】:

Node.js 官方文档提供了这个例子:

path.dirname('/foo/bar/baz/asdf/quux');
// Returns: '/foo/bar/baz/asdf'

但是,我实际上想要'asdf' 而不是完整路径'/foo/bar/baz/asdf'

尽管进行了一些字符串操作,但最好的方法是什么,或者有什么官方 API 可以直接获取那段字符串?

【问题讨论】:

    标签: node.js path


    【解决方案1】:

    您可以在 path.dirname() 返回的目录路径上使用path.basename(),如下所示。此方法返回给定路径的最后一部分。

    const path = require('path');
    const dirPath = path.dirname('/foo/bar/baz/asdf/quux');
    console.log(path.basename(dirPath))
    
    

    【讨论】:

      【解决方案2】:

      我相信这行简单的代码应该会给你想要的结果。

      path.basename(path.dirname(''/foo/bar/baz/asdf/quux''))
      

      【讨论】:

        【解决方案3】:

        官方 API 或模块也可以进行字符串操作,非常简单:

        path.dirname('/foo/bar/baz/asdf/quux').split("/").pop(); // asdf
        

        适用于所有平台:

         path.dirname('/foo/bar/baz/asdf/quux').split(/\/|\\/).pop(); // asdf
        

        【讨论】:

        • 我认为最好使用path.basename(),因为您的解决方案不会在文件路径的呈现中捕捉到平台特定的差异。例如,您的代码在 Windows 上可能会失败,因为此平台上的路径分隔符是 `\`。
        猜你喜欢
        • 1970-01-01
        • 2015-12-26
        • 1970-01-01
        • 2010-10-15
        • 2011-04-19
        • 1970-01-01
        • 1970-01-01
        • 2011-03-26
        相关资源
        最近更新 更多