Ruby FTP从文件夹中分离文件
发布时间:2020-12-16 22:41:03 所属栏目:百科 来源:网络整理
导读:我正在尝试抓取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
我正在尝试抓取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]. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |