獲得遞歸計算的目錄大小是否有很好的寶石?在unix中,我可以使用du
,但我想要一個吸收OS間差異的庫。遞歸獲取目錄的大小
回答
看起來像sys-filesystem可以處理這個問題,但是您需要做一些數學運算來將可用塊轉換爲字節(通過乘以塊大小)。
這可能是由於自從很長一段時間以來這個答案,但mentio ned gem正確地確定了塊的大小(也是以字節爲單位的大小)。 'bytes_ {used,total,free}'只在文件系統(= mount)級別上,似乎不能確定目錄的大小。 – oliverguenther 2015-07-20 14:06:43
查看File::Stat
類(請注意,它不計算目錄內容的大小,它需要手動完成)。
file = File::Stat.new('.')
puts file.size
我假設你是downvoted,因爲它返回目錄的大小,但不是目錄內容的組合大小。 – d11wtq 2012-02-20 05:55:03
啊,當然。這是一個令人失望的警告。 – fullsailor 2012-02-20 06:48:01
支持工具:
diruse /M %windir%
diruse /K /S %windir%
diruse /S %windir%
diruse /, %windir%
微軟...系統安裝光盤
msiexec /i %cd:~0,2%\SUPPORT\TOOLS\SUPTOOLS.MSI /q addlocal=all
的Sysinternals Suite工具:
du.exe -l 1 %windir%
微軟...
目前還不清楚如何解決這個問題。 YOu需要解釋 – 2016-03-03 23:12:57
莫非這樣的事情對你的工作?
def directory_size(path)
path << '/' unless path.end_with?('/')
raise RuntimeError, "#{path} is not a directory" unless File.directory?(path)
total_size = 0
Dir["#{path}**/*"].each do |f|
total_size += File.size(f) if File.file?(f) && File.size?(f)
end
total_size
end
puts directory_size '/etc'
這是一個使用我的解決辦法http://ruby-doc.org/core-2.2.0/File.html#method-c-size:
def directory_size(path)
size=0
Dir.glob(File.join(path, '**', '*')) { |file| size+=File.size(file) }
size
end
這似乎工作:
Dir.glob(File.join(dir, '**', '*'))
.map{ |f| File.size(f) }
.inject(:+)
我想你實際上只是用'(&:size)'來獲取字符串的長度。你想要的是'{| file | File.size(file)}'。 – 2017-06-24 08:25:34
@RyanLue你說得對,我確定了我的答案。 – yegor256 2017-06-25 12:16:01
- 1. 獲取目錄大小
- 2. 如何在目錄下遞歸獲取所有文件的總大小
- 3. Powershell:獲取目錄權限遞歸
- 4. 如何在不遞歸瀏覽目錄的情況下獲取node.js中的目錄大小?
- 5. PHP - 獲取目錄的大小
- 6. 獲取目錄中文件的大小
- 7. 目錄遞歸
- 8. 獲取與門檻目錄大小
- 9. 獲取目錄大小ssh2 php
- 10. PowerShell腳本獲取目錄總大小
- 11. Windows Phone - IsolatedStorage - 獲取目錄大小
- 12. 遞歸目錄大小包括符號鏈接兩次
- 13. Ruby遞歸目錄
- 14. java.lang.StackOverflowError遞歸目錄
- 15. 獲取記錄ID的遞歸關係
- 16. 遞歸讀取目錄並有選擇地獲取內容
- 17. 遞歸獲取具有多個子目錄的目錄中的文件
- 18. Python IOError:[遞歸目錄2]來自遞歸目錄調用
- 19. 遞歸wget抓取兩個目錄
- 20. 遞歸讀取目錄與文件夾
- 21. C中的遞歸目錄
- 22. 是遞歸的目錄
- 23. 獲取目錄中所有文件的列表(遞歸)
- 24. 使用遞歸獲取某個目錄中的所有文件
- 25. 獲取遞歸目錄中的特定文件
- 26. 獲取所有目錄中的文件遞歸提交
- 27. Java遞歸混淆。試圖獲取目錄中的文件
- 28. 獲取多維子目錄數組的遞歸函數
- 29. 遞歸堆棧大小?
- 30. 查找大小遞歸
相關:http://stackoverflow.com/questions/3632074/what-is-the -fastest-way-to-calculate-disk-usage-per-customer – coreyward 2012-02-20 00:03:22
相關:http://stackoverflow.com/questions/4508692/get-available-diskspace-in-ruby – coreyward 2012-02-20 00:06:19