在ruby中创建文件数组并按日期排序

在ruby中创建文件数组并按日期排序,ruby,arrays,file,sorting,Ruby,Arrays,File,Sorting,我有一个文件名数组,有没有办法按修改日期对这些文件进行排序?您可以将sort\u by方法与File.mtime方法结合使用,该方法返回给定文件的上次修改时间 filenames.sort_by {|filename| File.mtime(filename) } 请注意,sort_by不会修改接收器,而是返回一个新数组,因此您可以直接使用结果(例如,names.sort_by{…}.each{…})或保存结果(例如,sorted=names.sort_by{…})。Ruby 1.9.2添加了

我有一个文件名数组,有没有办法按修改日期对这些文件进行排序?

您可以将
sort\u by
方法与
File.mtime
方法结合使用,该方法返回给定文件的上次修改时间

filenames.sort_by {|filename| File.mtime(filename) }

请注意,
sort_by
不会修改接收器,而是返回一个新数组,因此您可以直接使用结果(例如,
names.sort_by{…}.each{…}
)或保存结果(例如,
sorted=names.sort_by{…}
)。Ruby 1.9.2添加了
sort\u by以就地修改阵列。有两个修改时间可供您使用
File.mtime
vs.
File.ctime
,两者之间有细微差别。@theTinMan:
File.ctime
指的是文件创建的时间,而不是修改的时间。绝对不是<代码>“返回命名文件的更改时间(有关文件的目录信息更改的时间,而不是文件本身)。”
只有Windows支持文件创建日期*nix只了解修改时间。