2011-01-26 14 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が私のコマンドを大文字に変換するのはなぜですか?

答えて

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