【发布时间】:2012-01-29 10:49:01
【问题描述】:
我知道我可以通过
获取当前目录$CurrentDir = Dir.pwd
当前目录的父目录呢?
【问题讨论】:
我知道我可以通过
获取当前目录$CurrentDir = Dir.pwd
当前目录的父目录呢?
【问题讨论】:
File.expand_path("..", Dir.pwd)
【讨论】:
File.expand_path('..'),default dir_string 就是'.'。
ruby 2.1.5。以下做了... File.dirname(File.expand_path('..', __FILE__))
也许是最简单的解决方案:
puts File.expand_path('../.')
【讨论】:
File.expand_path('..')?
File.expand_path 规范的好奇心,非常感谢。
我认为更简单的解决方案是使用File.dirname:
2.3.0 :005 > Dir.pwd
=> "/Users/kbennett/temp"
2.3.0 :006 > File.dirname(Dir.pwd)
=> "/Users/kbennett"
2.3.0 :007 > File.basename(Dir.pwd)
=> "temp"
File.basename 返回File.dirname 没有的路径组件。
当然,这仅适用于文件规范是绝对的而不是相对的。为了确保绝对可以做到这一点:
2.3.0 :008 > File.expand_path('.')
=> "/Users/kbennett/temp"
2.3.0 :009 > File.dirname(File.expand_path('.'))
=> "/Users/kbennett"
【讨论】:
在现代 Ruby 中,您绝对应该使用 Pathname。
Pathname.getwd.parent
【讨论】:
.to_s 将其转换为字符串(它是路径名)。
to_s,而是应该在任何地方都使用 Pathname 作为文件名,而不是 String。