Ruby on rails 是否按创建的顺序从目录中提取文件?

Ruby on rails 是否按创建的顺序从目录中提取文件?,ruby-on-rails,ruby,Ruby On Rails,Ruby,现在我已经写了这个逻辑 def get_file_names @files = [] Find.find("#{BACKUP_FILE_DIR}") do |path| file_stat = File.stat path @files << { :name => File.basename(path,".*"), :mtime => file_stat.mtime, :path

现在我已经写了这个逻辑

  def get_file_names
    @files = []
    Find.find("#{BACKUP_FILE_DIR}") do |path|
      file_stat = File.stat path
      @files << {
        :name => File.basename(path,".*"),
        :mtime => file_stat.mtime,
        :path => path
      }
    end
    @files.delete_at(0)
    @files = @files.sort_by { |file| file[:mtime] }
    @file_names = []
    @files.each do |f|
      @file_names << [f[:name],f[:path]]
    end
  end
def get_文件名
@文件=[]
Find.Find(“#{BACKUP_FILE_DIR}”)do|路径|
file_stat=file.stat路径
@files File.basename(路径“.*”),
:mtime=>file_stat.mtime,
:path=>path
}
终止
@文件。在(0)处删除\u
@files=@files.sort_by{| file | file[:mtime]}
@文件名=[]
@文件。每个do | f|
@文件名您需要在file::Stat中使用“ctime”而不是mtime

mtime : time last modified
ctime : time created
试试这个:

# recursively collect file names based on ctime:
#
def get_file_names( dir )
  Dir.chdir(dir)
  Dir.entries(dir).each do |f|
   # next if f == '.'
   # next if f == '..'
    next if f =~ /^\./    # ignore dot-files and dot-directories                                    

    full_filename = File.join( Dir.pwd , f)

    if File.directory?( full_filename )
      get_file_names( full_filename )
    else
      stat = File::Stat.new( full_filename )
      @files_by_ctime[stat.ctime] ||= []
      @files_by_ctime[stat.ctime] << full_filename
    end
  end
  Dir.chdir('..')
end ; 1

@files_by_ctime = {}

get_file_names('/tmp')

@files_by_ctime.keys.sort.each do |ctime|
  puts "Created: #{ctime} : #{@files_by_ctime[ctime].inspect}"
end ; 1
#基于ctime递归收集文件名:
#
def get_文件名(目录)
目录chdir(Dir)
目录条目(目录)。每个目录都有| f|
#下一步如果f=='。'
#下一步,如果f='..'
下一步如果f=~/^\./#忽略点文件和点目录
full_filename=File.join(Dir.pwd,f)
if File.directory?(完整文件名)
获取文件名(完整文件名)
其他的
stat=File::stat.new(完整文件名)
@文件_by_ctime[stat.ctime]| |=[]

@files\u by\u ctime[stat.ctime]查看此问题:仅获取文件夹名称。。不是文件夹中的文件名..>>文件按{f| File.ctime(f)}=>[“/db_backups”]排序,标题是创建时间,但在Linux和Mac OS上不可用,Ruby根本不支持它。
ctime
mtime
都不是创建时间,它们是文件修改时间的变体。