net / ftp无效参数错误

时间:2011-07-27 14:34:15

标签: ruby

我有一个相对简单的脚本正在运行。脚本中没有任何内容发生变化,我正在使用ruby 1.8.6。

require 'net/ftp'
ftp = Net:: FTP.new(ip)
ftp.login(user=name,passwd=pass)
ftp.chdir(pathHere)
ftp.gettextfile('onhandapt.txt', File.basename('onhandapt.txt'))
ftp.close

我通过运行irb中的步骤知道我可以成功登录,甚至发出ftp.list命令来获取当前目录,但ftp.chdir是脚本失败的地方。在irb中,ftp.chdir命令产生'nil'。双重检查服务器上的路径。

该脚本产生此错误: c:/ruby/lib/ruby/1.8/net/ftp.rb:211:readline': Invalid argument (Errno::EINVAL) from c:/ruby/lib/ruby/1.8/net/ftp.rb:211:in getline' 来自c:/ruby/lib/ruby/1.8/net/ftp.rb:221:in getmultiline' from c:/ruby/lib/ruby/1.8/net/ftp.rb:235:in getresp' 来自c:/ruby/lib/ruby/1.8/net/ftp.rb:251:in voidresp' from c:/ruby/lib/ruby/1.8/net/ftp.rb:274:in voidcmd' 来自c:/ruby/lib/ruby/1.8/monitor.rb:242:in synchronize' from c:/ruby/lib/ruby/1.8/net/ftp.rb:290:in sendport' 来自c:/ruby/lib/ruby/1.8/net/ftp.rb:298:makeport' from c:/ruby/lib/ruby/1.8/net/ftp.rb:329:in transfercmd' 来自c:/ruby/lib/ruby/1.8/net/ftp.rb:421:在retrlines' from c:/ruby/lib/ruby/1.8/monitor.rb:242:in synchronize'中 来自c:/ruby/lib/ruby/1.8/net/ftp.rb:419:在retrlines' from c:/ruby/lib/ruby/1.8/net/ftp.rb:518:in gettextfile'

欢迎提示。

2 个答案:

答案 0 :(得分:0)

确保pathHere包含有效的路径名,而不是设置为nil

答案 1 :(得分:0)

想出来。我们有一些办公室网络的变化。我现在需要使用被动模式,可以使用此命令设置:ftp.passive=true