【问题标题】:Ruby: Finding most recently modified fileRuby:查找最近修改的文件
【发布时间】:2011-06-16 22:44:54
【问题描述】:

在目录中查找最近修改的文件的惯用方法是什么?

【问题讨论】:

    标签: ruby idioms


    【解决方案1】:
    Dir.glob("*").max_by {|f| File.mtime(f)}
    

    【讨论】:

    • 漂亮的解决方案。谢谢。
    • Dir.glob("/path/to/search/**/*.*").max_by {|f| File.mtime(f)}
    • @WiredIn 的评论将结果减少为其中有句点的文件(仅限具有扩展名的文件)。请参阅以下内容以了解包含“隐藏”点文件...*.com/questions/11385795/…
    【解决方案2】:

    我不确定这是否真的有成语。我会做的

    Dir["*"].sort_by { |file_name| File.stat(file_name).mtime }
    

    编辑

    看看三个人如何同时给出或多或少相同的答案。一定是这个。

    【讨论】:

    • 投反对票,因为这没有回答 OP 的问题(返回排序的时间列表而不是最近的时间)。它也没有其他两个答案那么简洁。
    【解决方案3】:
    Dir["*"].sort { |a,b| File.mtime(a) <=> File.mtime(b) }.last
    

    这不是递归的。

    【讨论】: