Ruby FTP sendcmd错误

时间:2011-01-26 13:00:02

标签: ruby ftp

ftp = Net::FTP.new(IPAddress)
ftp.login(UserName, Password)
ftp.sendcmd("prompt")
ftp.sendcmd("mget filename*")

此代码返回以下错误。

/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将我的命令转换为大写,而我用小写字母表示。

1 个答案:

答案 0 :(得分: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