在Ruby Pathname .children

时间:2016-04-06 21:27:04

标签: ruby sorting pathname

Pathname的.children方法返回的文件系统实体的顺序似乎是任意的,或者至少不是按字母顺序排列的。

有没有办法通过文件系统按字母顺序返回这些,而不是在返回的数组上调用.sort

1 个答案:

答案 0 :(得分:3)

路径名的children实际上正在执行:

def children(with_directory=true)
  with_directory = false if @path == '.'
  result = []
  Dir.foreach(@path) {|e|
    next if e == '.' || e == '..'
    if with_directory
      result << self.class.new(File.join(@path, e))
    else
      result << self.class.new(e)
    end
  }
  result
end

Dir.foreach调用操作系统并迭代传入的目录。没有规定告诉操作系统按特定订单排序。

What is the "directory order" of files in a directory (used by ls -U)?”可能是您感兴趣的。