为什么Ruby似乎随机访问目录中的文件?

这是设计的吗?

这是代码:

class FileRenamer def RenameFiles(folder_path) files = Dir.glob(folder_path + "/*") end end puts "Renaming files..." renamer = FileRenamer.new() files = renamer.RenameFiles("/home/papuccino1/Desktop/Test") puts files puts "Renaming complete." 

它似乎是取文件是随机顺序,而不是它们在Nautilus中显示。

在此处输入图像描述

这是设计的吗? 我只是好奇。

每次在特定操作系统上的顺序应该相同,但是不同操作系统的顺序不同。

在不同的操作系统中,不能依赖行为或Dir.glob。 不确定这是否是设计的,而是文件系统的人工制品。

在Windows和Linux上,结果按层次结构排序,然后按字母顺序排序; 在Mac OS X上,结果按字母顺序排序。

您可以通过对结果调用sort来减轻效果,例如:

 files = Dir.glob("./*").sort 

或者如果您希望它不区分大小写,或许:

  files = Dir.glob("./*").sort {|a,b| a.upcase <=> b.upcase}