2
使用下面的方法ftp_download
工作,但如果我改變的Net :: FTP getbinaryfile()保存到文件VS保存到變量
ftp.getbinaryfile(file,localdir,1024) #=> Saves the file to localdir
到
ftp.getbinaryfile(file) #=> returns nil
我得到nil
返回。根據
http://www.ruby-doc.org/stdlib-2.0/libdoc/net/ftp/rdoc/Net/FTP.html#method-i-getbinaryfile
inilf予如上設置localfile
到nil
,數據應被檢索以及由該方法返回。我究竟做錯了什麼?
def ftp_download(domain,remotedir,filename_regex,user=nil,pwd=nil)
ftp = Net::FTP::new(domain)
if user && pwd
ftp.login(user, pwd)
end
ftp.chdir(remotedir)
fileList = ftp.nlst(filename_regex)
fileList.each do |file|
localdir=File.join(remotedir,file)
localdir=localdir[1..-1] if localdir[0]="/"
FileUtils.mkdir_p(File.dirname(localdir))
ftp.getbinaryfile(file,localdir,1024)
end
ftp.close
end
我已經嘗試ftp.getbinaryfile(文件,零),和它似乎現在返回數據。謝謝但是,你知道爲什麼會這麼慢嗎?當我將一個文件保存到一個文件中時,文件將在不到一秒的時間內保存。如果我使用了ftp.getbinaryfile(文件,無),大約需要1分鐘才能返回數據。 – user2012677 2013-05-08 15:13:09
我試過了,我沒有經歷寫入文件和只返回字符串分配結果給變量之間的這種區別,你如何處理返回的數據? – toro2k 2013-05-09 07:11:57
現在,什麼也沒有,只是在irb中顯示數據。該文件很大,大約30mb。似乎如果我加上「無」來壓制輸出,它會變得更快。謝謝! – user2012677 2013-05-11 16:38:45