サーバー上のファイルのグループの変更時刻を取得する必要があります。ローカル コンピューターでこれを取得する方法は知っていますが、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