From: Robert Klemme Date: 2009-02-10T05:54:00+09:00 Subject: Re: search latest version of file in directory On 09.02.2009 20:46, Mmcolli00 Mom wrote: > Hi, I have a directory full of files and want to get the newest version > of each out of the directory. The files look like below. Please tell me > if you know a way to pull out the latest version of each. Thanks > > 34_web1_no2_09202008.txt > 34_web1_no2_09212008.txt <--want to pull out this latest version > 34_web2_no3_10122008.txt > 34_web2_no3_10132008.txt <--want to pull out this latest version > > ******snippet******************************************* > > newsortfile = Dir["C:/Status2/*.html"].map{|@f| > [@f,File.mtime(@f)]}.sort_by{|@i|@i[1]} > @NewestFile = @i[1] > > Dir.entries("C:/Status2/").each do |filename| > if File.mtime("C:/Status2/"+filename) == @NewestFile then > puts filename > end > end This is how I'd approach this: dir = "C:/Status2" files = Hash.new {|h,k| h[k] = []} Dir[File.join(dir, "*.txt")].each do |f| files[f[/^\d+_web\d+_no\d+/]] << File.join(dir, f) end files.each do |k,v| puts v.sort_by! {|f| File.mtime(f)}.last end Cheers robert