在`Dir.entries`中排序顺序

Pra*_*Rao 20 ruby

是否有固定/默认排序顺序,其中Dir.entries返回结果?根据经验,我知道前两个条目是".""..".

mae*_*ics 20

根据Ruby语言文档,Dir.entries()不保证所列文件的任何特定顺序,因此如果您需要某些订单,最好自己明确地执行.

例如,如果需要按文件修改时间(从最旧到最新)排序,则可以执行以下操作:

Dir.entries('.').sort_by { |x| File.mtime(x) }
Run Code Online (Sandbox Code Playgroud)

  • 或者`.sort_by {| a | File.stat(a).mtime}`跳过一些`stat`调用. (6认同)
  • 或者`.sort_by {| a | File.mtime(a)}`跳过一些`File :: Stat`分配. (2认同)

bor*_*r1s 11

我认为没有默认的排序顺序,但您可以使用Dir.entries('some_path_to_dir').sort它以ASC方式对它们进行排序.