有谁知道在下载文件时从ruby的Net :: FTP库获取状态更新的方法吗?我试图实现一个Web界面,该界面显示从远程FTP服务器下载文件时剩余百分比的进度条。Ruby Net :: FTP进度条
10
A
回答
34
以供将来参考 - 我偶然发现了一个解决方案:
filesize = ftp.size(filename)
transferred = 0
p "Beginning download, file size: #{filesize}"
ftp.getbinaryfile(filename, "#{SOURCE_IMPORT_DIRECTORY}/#{filename}", 1024) { |data|
transferred += data.size
percent_finished = ((transferred).to_f/filesize.to_f)*100
p "#{percent_finished.round}% complete"
}
ftp.close
0
我建@ smnirven的优秀做法对少了几分喧闹的进步与100点的进展:
filesize = ftp.size(filename)
transferred = 0
notified = false
ftp.getbinaryfile(filename, full_local_path, 1024) do |data|
transferred += data.size
percent_finished = (((transferred).to_f/filesize.to_f)*100)
if percent_finished.to_s.include?('.0')
print "." if notified == false
notified = true
else
notified = false
end
end
ftp.close
输出:
[progress] Downloading CBSA boundaries...
..........................................................................
..........................
[progress] Finished!
4
我扩展了@smnirven和@theoretick给出的答案以创建一个固定的si
def getprogress(ftp,file,local_path)
transferred = 0
filesize = ftp.size(file)
ftp.get(file, local_path, 1024) do |data|
transferred += data.size
percent = ((transferred.to_f/filesize.to_f)*100).to_i
finished = ((transferred.to_f/filesize.to_f)*30).to_i
not_finished = 30 - finished
print "\r"
print "#{"%3i" % percent}%"
print "["
finished.downto(1) { |n| print "=" }
print ">"
not_finished.downto(1) { |n| print " " }
print "]"
end
print "\n"
end
输出继电器:
Executing gather for: ruby
Going to public ftp - ftp.ruby-lang.org
File list for /pub/ruby/2.0/:
ruby-2.0.0-p647.tar.gz
Downloading: ruby-2.0.0-p647.tar.gz
100%[==============================>]
这个例子的关键是打印“\到处乱飞,因为它完成,这样就可以有一个如何完成进度是视觉的想法泽进度条r“以重写该行。
相关问题
- 1. 使用本地.NET库FTP进度条不显示正确的进度
- 2. .net statusstrip进度条开始进度
- 3. Ruby on Rails进度条
- 4. Ruby 1.9 + Net :: FTP => Encoding :: UndefinedConversionError
- 5. Ruby Net :: FTP超时线程
- 6. Net :: SSH`wget`进度条
- 7. c#.Net进度条问题
- 8. ftp下载进度条不填充c#
- 9. 在java中的FTP apache commons进度条
- 10. VB.NET上传到FTP进度条
- 11. 用于ftp下载的进度条
- 12. Ruby - Net :: FTP - 二进制和文本文件
- 13. 如何在Ruby中实现进度条?
- 14. Ruby Net :: FTP,从ftp.list()提取文件名
- 15. Ruby Net :: FTP特殊字符文件名
- 16. .NET Winforms垂直进度条文本
- 17. .NET中的自定义进度条CF
- 18. 垂直进度条模板.NET
- 19. 从.Net调用SQL的进度条
- 20. Ruby FTP sendcmd错误
- 21. 如何用ruby Net :: FTP删除ftp中的空文件夹?
- 22. Java FTP下载进度
- 23. 进度条
- 24. 带有进度的FTP文件上传
- 25. VB.NET进度条
- 26. 进度条未显示进度条
- 27. 设置进度,进度条
- 28. 减慢进度条进度
- 29. 进度条更新进度
- 30. 如何进度进度条
这是一个古老的线索,但是,你可以给自己一个答案。做得好。 – 2011-11-12 21:21:14
我同意,谢谢你的这个例子 – chrisan 2012-12-09 12:40:16