在 ruby 中,我能够
File.dirname("/home/gumby/bigproject/now_with_bugs_fixed/32/FOO_BAR_2096.results")
并得到
"/home/gumby/bigproject/now_with_bugs_fixed/32"
但是现在我想将该目录字符串拆分为各个文件夹组件,例如
["home", "gumby", "bigproject", "now_with_bugs_fixed", "32"]
除了使用之外还有其他方法吗
directory.split("/")[1:-1]
最佳答案
没有内置功能可以将路径拆分为组件目录,就像加入它们一样,但是您可以尝试以跨平台的方式伪造它:
directory_string.split(File::SEPARATOR)
这适用于相对路径以及在非Unix平台上,但是对于以
"/"
作为根目录开头的路径,那么您将获得一个空字符串作为数组中的第一个元素,而我们需要"/"
。directory_string.split(File::SEPARATOR).map {|x| x=="" ? File::SEPARATOR : x}
如果您只想要没有根目录的目录,则可以将其更改为从第一个元素中选择。
directory_string.split(File::SEPARATOR).map {|x| x=="" ? File::SEPARATOR : x}[1..-1]
关于ruby - 如何在Ruby中分割目录字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1370988/