有誰知道在下載文件時從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