在ruby中下载多个FTP文件,如d * .txt

我需要连接到一个ftp站点并下载一堆名为D * .txt的文件(最多6个)。 你能帮我用Ruby编写代码吗? 以下代码只是

ftp = Net::FTP::new("ftp_server_site") ftp.login("user", "pwd") ftp.chdir("/RemoteDir") fileList= ftp.nlst ftp.getbinaryfile(edi, edi) ftp.close 

谢谢

最简单的方法是循环遍历fileList中的文件列表。

这是一个例子(未经测试):

 ftp = Net::FTP::new("ftp_server_site") ftp.login("user", "pwd") ftp.chdir("/RemoteDir") fileList = ftp.list('D*.txt') fileList.each do |file| ftp.gettextfile(file) end ftp.close 

希望这可以帮助。

dir中的文件名数组,您可以通过“ nlst ”方法获取:

 files = ftp.nlst('*.zip') files.each do |file| puts file end #=> first.zip, second.zip, third.zip, ... 

该解决方案对我不起作用,尽管它可能取决于FTP服务器。 对我来说,ftp.list在Linux上返回类似于ls -l结果。 我使用以下正则表达式来获取list返回的第一个文件的文件名:

 ftp.list('D*.txt')[0][/.*(\d{2}):(\d{2})\s{1}(?.+)$/,1]