【问题标题】:How do I get the name of the current directory in Ruby?如何在 Ruby 中获取当前目录的名称?
【发布时间】:2012-06-17 19:05:18
【问题描述】:

如何在 Ruby 中获取当前目录的名称?我找到的只是File.dirname(__FILE__),但只返回.,我想要实际名称。我该怎么做?

【问题讨论】:

    标签: ruby directory


    【解决方案1】:
    dirname = File.basename(Dir.getwd)
    

    File.basename() 返回基本名称,即使它的参数是目录的路径。

    要获得绝对路径Dir.pwd 似乎可以解决问题。

    【讨论】:

    • 这实际上返回了运行脚本的文件夹的名称。例如。如果我在/my/folderx 并运行./test/runme.eb(包含dirname = File.basename(Dir.getwd))而不是dirname => 'folderx' 而不是test
    【解决方案2】:

    在 Ruby 2.0 或更高版本中,您可以使用Kernel#__dir__

    __dir__
    

    来自文档:

    返回文件目录的规范化绝对路径 从中调用此方法。

    【讨论】:

    • 如问题中所述 - “只返回 . 并且我想要实际名称”(对于 ruby​​ >=2.0.0 也是如此,例如 Ruby 2.3.3)。
    【解决方案3】:
    File.expand_path(File.dirname(File.dirname(__FILE__)))
    

    【讨论】:

    • 为什么是两个dirnames
    • 我相信这是一个错字,但是,它可以双向工作:额外调用 dirname 和没有:File.expand_path(File.dirname(__FILE__))
    猜你喜欢
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 2012-01-29
    • 2017-09-05
    • 2010-11-18
    • 1970-01-01
    相关资源
    最近更新 更多