如何使用Ruby获取目录中最后创建的文件的路径?
答案 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
默认不起作用,所以你必须先设置