我正在尝试抓取 FTP 并以递归方式提取所有文件。
到目前为止,我一直在尝试使用
下拉目录 ftp.list.each do |entry|
if entry.split(/\s+/)[0][0, 1] == "d"
out[:dirs] << entry.split.last unless black_dirs.include? entry.split.last
else
out[:files] << entry.split.last unless black_files.include? entry.split.last
end
但事实证明,如果您将列表拆分到最后一个空格,则获取带有空格的文件名和目录是错误的。 在此处的逻辑上需要一点帮助。
最佳答案
如果一次列出所有文件,则可以避免递归
files = ftp.nlst('**/*.*')
目录未包含在列表中,但名称中仍提供完整的 ftp 路径。
编辑
我假设每个文件名都包含一个点,而目录名则没有。感谢您提及@Niklas B。
关于Ruby FTP 从文件夹中分离文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9553939/