我需要获取服务器上一组文件的修改时间。我知道如何在本地计算机上获取此功能,但File.mtime
无法通过FTP工作。如何将此代码转换为在服务器上运行?
files_sorted_by_time = Dir['*'].select { |f|
((Time.now - File.mtime(f)).to_i / 604800) < 7
}
答案 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