2014-01-08 36 views
0

我使用Net :: FTP的getbinaryfile功能来通过FTP提取zip文件。我的系统不知道完整的文件名,所以我只想搜索文件夹中的zip文件扩展名。通常我只是输入文件名为*.zip。这似乎并不奏效。文件扩展名为FTP getbinaryfile?

ftp = Net::FTP.new(domain) 
path = "#{Rails.root}/public/ftp/#{self.id}.zip" 
ftp.getbinaryfile("*.zip", path) 
+0

重要的是要记住,FTP不*与使用命令行和shell相同。您的FTP客户端依赖于具有不同功能的服务器,因此通配符将不会以相同的方式工作。例如,我们无法获得一堆匹配模式的文件。有一些服务器实现了对FTP协议的扩展,但客户端必须感知这些扩展,然后进行编程以利用它们。基本的命令总是有效的,所以熟悉这些命令,然后再建立它们。 –

回答

1

我用下面的代码返回zip文件名称在FTP文件夹中。然后使用与上面相同的代码,我可以使用正确的zip文件名运行getbinaryfile

files = ftp.nlst("*.zip") 
0

我使用以下方法来获取所有的压缩文件(我使用SFTP但希望这将指向你在正确的方向)

Net::SFTP.start(domain, user, :password => 'pass') do |sftp| 
    sftp.dir.glob("/yourdirectory","*.zip").each do |file| 
    sftp.download!(file, "/local/spot") 
    end 
end