如何使用Ruby获取目录中最后创建的文件的路径?

时间:2010-07-02 13:39:56

标签: windows ruby file

如何使用Ruby获取目录中最后创建的文件的路径?

5 个答案:

答案 0 :(得分:12)

我认为这是相当简短的:

Dir.glob(File.join(path, '*.*')).max { |a,b| File.ctime(a) <=> File.ctime(b) }

答案 1 :(得分:2)

Dir.entries("testdir").reject{|f| f== '.' || f=='..'}.sort_by{|f| File.ctime(f)}.last

答案 2 :(得分:1)

您可以使用dir类列出所有文件并检查文件对象的ctime或atime(ctime是上次更改文件的时间,atime是上次访问文件的时间)

Dir.foreach("testdir") {|f| puts File.ctime(x) }

答案 3 :(得分:0)

Dir.glob(root_path +“”)。map {| file | [文件,File.ctime(文件)]}。max.first

答案 4 :(得分:0)

我将此方法添加到supermanpatches.rb内的railsapp/config/initializers文件中,以打开我最新生成的迁移(在TextMate中),而无需复制和粘贴文件名或类似的内容:

def latestmigration
  `mate db/migrate/#{Dir.glob(File.join(Rails.root, 'db', 'migrate', '*.rb')).max { |a,b| File.ctime(a) <=> File.ctime(b)} }`
end

‡:(对于ruby / rails初学者来说,初始化代码无所不在,并且不需要从rails中的任何位置访问类到文件名范围)

注意:对于windows(或mac),您可以使用vim命令而不是mate命令,并且可以配置sublimetext来执行此操作,我认为它称为{{1}命令。 subl&amp;虽然我认为mate默认不起作用,所以你必须先设置