此代码登录并尝试更改目录,然后列出目录中的文件:
Net::FTP.open(DOMAIN_NAME, LOGIN, PASSWORD) do |ftp|
files = ftp.chdir("forms/")
puts files.list
end
运行时出现此错误:
undefined method `list' for nil:NilClass
该文件夹肯定存在。当我尝试使用cyberduck进行连接时,我看到了它,如果我做ftp.list
。
我做错了什么?
另外,我如何从FTP服务器下载CSV文件,然后打开它?
我试过阅读rubylang上的文档,我很困惑。如果有人能提供帮助那就太棒了!
答案 0 :(得分:2)
chdir
更改目录。如果你看一下基础资源,它就不会返回任何东西。
list
返回文件列表:
返回目录中的文件信息数组(输出类似于
ls -l
)。如果给出了一个块,它将遍历列表。
因此files
将为零,因为chdir
没有返回任何内容。相反,你需要做类似的事情:
ftp.chdir('forms/')
files = ftp.list
查看Example #2 in the docs示例,忽略他们尝试分配chdir
的结果。
nlist
甚至会比list
更好。如果您需要长文件列表,请使用list
,以便您可以解析权限,大小等。