我怎样才能得到使用Ruby的目录中最后创build的文件的path?

我怎样才能得到使用Ruby的目录中最后创build的文件的path?

Solutions Collecting From Web of "我怎样才能得到使用Ruby的目录中最后创build的文件的path?"

我认为这是相当简短的:

Dir.glob(File.join(path, '*.*')).max { |a,b| File.ctime(a) <=> File.ctime(b) } 
 Dir.entries("testdir").reject{|f| f== '.' || f=='..'}.sort_by{|f| File.ctime(f)}.last 

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

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

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

我将这个方法添加到railsapp/config/initializers我的supermanpatches.rb文件中,以打开我最近生成的迁移(在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 

‡:(红宝石/轨道初学者的FYI,初始化代码是无所不在的,并且不需要从rails中的任何地方访问类到文件名范围)

注意:使用windows(或mac)可以使用vim命令而不是mate命令,sublimetext也可以配置成这样做,我认为它叫做subl命令。 虽然我觉得matesubl不是默认的工作,所以你必须先设置它