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

但结果是,如果将列表拆分到最后一个空格,则带有空格的文件名和目录将被取错.
在这里需要一点逻辑帮助.

解决方法

您还可以使用正则表达式.我把它放在一起.请验证它是否适合您,以及我不知道您的目录列表看起来不同.你必须使用Ruby 1.9 btw.
reg = /^(?<type>.{1})(?<mode>\S+)\s+(?<number>\d+)\s+(?<owner>\S+)\s+(?<group>\S+)\s+(?<size>\d+)\s+(?<mod_time>.{12})\s+(?<path>.+)$/

match = entry.match(reg)

您可以按名称访问元素

match [:type]包含一个’d’,如果它是一个目录,一个空格,如果它是一个文件.

所有其他元素也都存在.最重要的是匹配[:path].

猜你在找的Ruby相关文章