论坛首页 Ruby版 ruby

用net::ftp下载ftp文件的问题

浏览 865 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-08-18
最近用ruby编写一个ftp的下载程序,Net::FTP.new().connect(host,port)后ftp.ls(path)即可得到path下所有文件和文件夹的信息。问题是接下来怎样判断是普通文件还是文件夹,还有怎样根据ftp.ls(path)的信息取得具体文件名,文件大小呢。
   
最后更新时间:2007-12-12
1.得到具体文件夹名:
  dir=ftp.ls(path).find_all{|i|i[0,10]=='drw-rw-rw-'}.map{|i|i.split(' ',9)[-1]}
或dir=ftp.ls(path).map{|i|i.split(' ',9)[-1]}-ftp.nlst(path)
当然或许会得到'.'和'..',这是当前目录和上级目录,不要delete就是了
2.得到具体文件名:
ftp.nlst(path)
可以获取path下所有文件名
3.判断普通文件还是文件夹
list=ftp.ls(path).partition{|i|i[0,10]=='drw-rw-rw-'}
此时list是个嵌套数组,list[0]为文件夹,list[1]为普通文件
4.文件大小
ftp.size(filename)
得到的是字节数,
   
0 请登录后投票
论坛首页 Ruby版 ruby

跳转论坛:
JavaEye推荐