2011-01-26 92 views
0
ftp = Net::FTP.new(IPAddress) 
ftp.login(UserName, Password) 
ftp.sendcmd("prompt") 
ftp.sendcmd("mget filename*") 

此代碼返回以下錯誤。Ruby FTP sendcmd錯誤

 
/usr/lib/ruby/1.9.1/net/ftp.rb:261:in `getresp': 500 'PROMPT': command not understood (Net::FTPPermError) 
     from /usr/lib/ruby/1.9.1/net/ftp.rb:269:in `voidresp' 
     from /usr/lib/ruby/1.9.1/net/ftp.rb:292:in `block in voidcmd' 
     from /usr/lib/ruby/1.9.1/monitor.rb:190:in `mon_synchronize' 
     from /usr/lib/ruby/1.9.1/net/ftp.rb:290:in `voidcmd' 

爲什麼Ruby將我的命令轉換爲UPPERCASE而我以小寫形式給出它。

回答

0

我不認爲sendcmd是這樣使用的。試試這個替代品

require 'net/ftp' 
user="user" 
pass="password" 
server="server" 
Net::FTP.open(server) do |ftp| 
    ftp.login(user,pass) 
    ftp.nlst("filename.*").each do |file| 
     ftp.getbinaryfile(file,file) 
    end 
    ftp.close 
end