Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 获取FTP服务器上文件的修改时间_Ruby_Ftp_Last Modified - Fatal编程技术网

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

Ruby 获取FTP服务器上文件的修改时间,ruby,ftp,last-modified,Ruby,Ftp,Last Modified,我需要获取服务器上一组文件的修改时间。我知道如何在本地计算机上获取此文件,但File.mtime无法通过FTP工作。如何将此代码转换为在服务器上工作 files_sorted_by_time = Dir['*'].select { |f| ((Time.now - File.mtime(f)).to_i / 604800) < 7 } 你想要的 文档中的示例: Net::FTP.open('ftp.netlab.co.jp') do |ftp| ftp.login fil

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

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

文档中的示例:

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

File.mtime对文件有效。你打算如何通过FTP使用它?我正在制作一个脚本,下载过去一周上传的flv文件,将其转换为mp4,然后重新上传。当你下载该文件时,它将在你下载时创建。有些FTP客户机会遇到从服务器获取修改时间并将其应用于下载文件的麻烦,但如果您在Ruby内部进行下载,则必须谨慎地执行此操作。FTP几乎没有日期和时间格式的标准,编写一个功能齐全的FTP客户端确实令人沮丧和困难。“如果你能用SCP来代替,你的生活会好得不可估量。”塔德曼听起来不错。我只需要代码来完成工作。我该怎么做?你试过了吗?有没有办法我可以得到服务器上文件的时间,并且只下载过去一周的文件?我只是试了你给我的代码,它给了我一个巨大的错误。我在这里发布了代码和错误我删除了ftp.login这一行,但是我在Net::ftp.openbla,bla,bla do | ftp |行中仍然有一个错误。好吧,为什么我不教你一些我最喜欢的调试技术。对不起,我没有足够的声誉