以 Ruby 路径名 .children 进行排序

问题描述 投票:0回答:2

Pathname 的

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

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

.sort

ruby sorting pathname
2个回答
4
投票

Pathname 的

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
调用操作系统并迭代传入的目录。没有规定告诉操作系统按特定顺序排序。

目录中文件的“目录顺序”是什么(由

ls -U
使用)?”您可能感兴趣。


0
投票

也许可以尝试一下

Dir.children("./DIR_NAME/").sort
© www.soinside.com 2019 - 2024. All rights reserved.