我需要获取服务器上一组文件的修改时间。我知道如何在本地计算机上获取它,但File.mtime
不能通过 FTP 工作。我将如何将此代码转换为在服务器上工作?
files_sorted_by_time = Dir['*'].select { |f|
((Time.now - File.mtime(f)).to_i / 604800) < 7
}
我需要获取服务器上一组文件的修改时间。我知道如何在本地计算机上获取它,但File.mtime
不能通过 FTP 工作。我将如何将此代码转换为在服务器上工作?
files_sorted_by_time = Dir['*'].select { |f|
((Time.now - File.mtime(f)).to_i / 604800) < 7
}
你想要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
with#nlst
过滤远程文件列表。
Net::FTP.open('ftp.netlab.co.jp') do |ftp|
ftp.login
ftp.nlst do |file|
if ftp.mtime(file) # ...
end
end