首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >下载多个FTP文件,如ruby中的d*.txt

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

Stack Overflow用户
提问于 2010-11-23 18:36:54
回答 3查看 4.6K关注 0票数 6

我需要连接到一个文件传输协议网站,并下载一堆文件(最多6个)命名为D*.txt。你能帮我用Ruby编写代码吗?下面的代码只是

代码语言:javascript
运行
复制
ftp = Net::FTP::new("ftp_server_site")
ftp.login("user", "pwd")
ftp.chdir("/RemoteDir")
fileList= ftp.nlst
ftp.getbinaryfile(edi, edi)
ftp.close

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-24 00:57:22

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

下面是一个示例(未经测试):

代码语言:javascript
运行
复制
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

希望这能有所帮助。

票数 7
EN

Stack Overflow用户

发布于 2013-02-16 21:12:37

目录中的文件名数组,可以通过"nlst“方法获取:

代码语言:javascript
运行
复制
files = ftp.nlst('*.zip')

files.each do |file|
  puts file
end

#=> first.zip, second.zip, third.zip, ...
票数 6
EN

Stack Overflow用户

发布于 2011-12-01 02:11:00

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

代码语言:javascript
运行
复制
ftp.list('D*.txt')[0][/.*(\d{2}):(\d{2})\s{1}(?<file>.+)$/,1]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4255141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档