Ruby FTP 从文件夹中分离文件

标签 ruby ftp

我正在尝试抓取 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/

相关文章:

command-line - 从环境变量中去除回车符 - XP 命令行

ruby - 使用 Jekyll 分页

python - Python 变得更面向对象了吗?

ruby - 迁移到鲁比尼乌斯

http - 我应该使用 HTTP 还是 FTP 从北极上传图像?

mysql - 需要 : Version control - install with only ftp/mysql access

ruby - 从 HTML 表格中提取数据

Ruby 表单自动提交 Mechanize::ResponseCodeError

python - 使用 Numpy 在 Python 中处理图像

regex - 如何在 proftpd 中对目录路径使用正则表达式