【发布时间】:2012-03-19 20:34:53
【问题描述】:
我有一个相对简单的脚本正在运行。脚本中没有任何变化,我使用的是 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:in readline': Invalid argument (Errno::EINVAL)
from c:/ruby/lib/ruby/1.8/net/ftp.rb:211:ingetline'
来自 c:/ruby/lib/ruby/1.8/net/ftp.rb:221:in getmultiline'
from c:/ruby/lib/ruby/1.8/net/ftp.rb:235:ingetresp'
来自 c:/ruby/lib/ruby/1.8/net/ftp.rb:251:in voidresp'
from c:/ruby/lib/ruby/1.8/net/ftp.rb:274:invoidcmd'
来自 c:/ruby/lib/ruby/1.8/monitor.rb:242:in synchronize'
from c:/ruby/lib/ruby/1.8/net/ftp.rb:290:insendport'
来自 c:/ruby/lib/ruby/1.8/net/ftp.rb:298:in makeport'
from c:/ruby/lib/ruby/1.8/net/ftp.rb:329:intransfercmd'
来自 c:/ruby/lib/ruby/1.8/net/ftp.rb:421:in retrlines'
from c:/ruby/lib/ruby/1.8/monitor.rb:242:insynchronize'
来自 c:/ruby/lib/ruby/1.8/net/ftp.rb:419:in retrlines'
from c:/ruby/lib/ruby/1.8/net/ftp.rb:518:ingettextfile'
欢迎提出想法。
【问题讨论】:
-
您是否尝试过手动 ftp-client 来检查您是否真的可以进入目标目录? IE。您没有处理某种权限问题或类似问题。
标签: ruby