获取路径的组件作为数组

时间:2013-10-31 17:06:57

标签: ruby

我想将路径的单个组件作为数组。

我找到了这两个解决方案:

path = '/usr/share/doc/less/'

parts = path.split(File::Separator)
p parts #  => ["", "usr", "share", "doc", "less"]

require 'pathname'
parts = []
Pathname.new(path).each_filename {|f| parts << f}
p parts #  => ["usr", "share", "doc", "less"]
  1. String.split()

    这是否坚固且便携?

  2. Pathname.each_filename()

    对Ruby看起来有点冗长。但是,这应该是便携式的,对吗?

  3. 有更好的方法吗?我错过了标准Ruby的东西吗?

1 个答案:

答案 0 :(得分:7)

那就是现场。 Pathname是ruby标准库的一部分,它应该是一个完全可移植的解决方案。

你可以使用它:

Pathname.new(path).each_filename.to_a

甚至:

Pathname(path).each_filename.to_a