2

我需要获取服务器上一组文件的修改时间。我知道如何在本地计算机上获取它,但File.mtime不能通过 FTP 工作。我将如何将此代码转换为在服务器上工作?

files_sorted_by_time = Dir['*'].select { |f| 
  ((Time.now - File.mtime(f)).to_i / 604800) < 7 
}
4

1 回答 1

5

你想要Net::FTP#mtime

文档中的示例:

Net::FTP.open('ftp.netlab.co.jp') do |ftp|
  ftp.login
  files = ftp.chdir('pub/lang/ruby/contrib')
  files = ftp.list('n*')
  ftp.getbinaryfile('nif.rb-0.91.gz', 'nif.gz', 1024)
  ftp.mtime('file.pdf')
end

您可以使用#mtimewith#nlst过滤远程文件列表。

Net::FTP.open('ftp.netlab.co.jp') do |ftp|
  ftp.login
  ftp.nlst do |file|
    if ftp.mtime(file) # ...
  end
end
于 2013-08-02T16:11:47.910 回答