Ruby,从路径+文件名获取路径


88

编程语言:Ruby 1.9

问题字符串:C:/Test/blah.txt
C:/Test/

我知道这是一个简单的问题,但是Google和Ruby quickrefFile对我来说没有解决方案。
而且我没有使用Regex的经验。

Answers:


171

使用RubyFile.dirname方法。

File.dirname("C:/Test/blah.txt")
# => "C:/Test" 

4
对我来说,File.dirname("/a/b/c/d")正确返回,/a/b/cFile.dirname("/a/b/c/d/")(尾随斜线)返回/a/b/c
杰森

3
红宝石文档中没有上下文的信息太多,无法准确找到您当前正在寻找的东西。如果您已经知道了,那就重新整理一下,或者如果您想了解所有事情,那就去研究吧,如果您正在从事一个项目并且只需要了解这一件事,那就太可怕了。非常感谢您的回答,这使我的生活更加轻松。
JackChance

0

更加通用的是Ruby Pathname类:

require 'pathname'

pn = Pathname.new("C:/Test/blah.txt")
p pn.dirname.to_s + Pathname::SEPARATOR_LIST

这给了C:/Test/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.