在 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/

10-11 22:46
查看更多