获取FTP服务器上文件的修改时间

时间:2013-08-02 15:21:27

标签: ruby ftp last-modified

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

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

1 个答案:

答案 0 :(得分:4)

你想要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

您可以#mtime#nlst一起使用来过滤远程文件列表。

Net::FTP.open('ftp.netlab.co.jp') do |ftp|
  ftp.login
  ftp.nlst do |file|
    if ftp.mtime(file) # ...
  end
end