再帰的に計算されたディレクトリサイズを取得するための良い宝石ですか? Unixでは、私はdu
を使うことができますが、OSの違いを吸収するライブラリが必要です。再帰的にディレクトリのサイズを取得
答えて
sys-filesystemのように見えますが、利用可能なブロックをバイトに変換するには(ブロックサイズを掛けて)計算する必要があります。
これは長い時間が経過したためですこの答えは、しかし、mentio ned gemは、ブロックサイズを正確に決定します(また、バイト単位のサイズも参照してください)。 'bytes_ {used、total、free}'はファイルシステム(=マウント)レベルのみであり、ディレクトリのサイズを決定するようには動作しません。 – oliverguenther
File::Stat
クラスをチェックしてください(ディレクトリの内容のサイズは計算されませんので、手動で行う必要があります)。
file = File::Stat.new('.')
puts file.size
これは、ディレクトリのサイズを返しますが、ディレクトリの内容の合計サイズを返さないため、あなたがダウンボートされたと仮定します。 – d11wtq
ああ、もちろんです。それは残念なことに警告です。 – fullsailor
サポートツール:
diruse /M %windir%
diruse /K /S %windir%
diruse /S %windir%
diruse /, %windir%
マイクロソフト...システムがCD
msiexec /i %cd:~0,2%\SUPPORT\TOOLS\SUPTOOLS.MSI /q addlocal=all
のSysinternals Suiteのユーティリティをインストールします。
du.exe -l 1 %windir%
マイクロソフト...
これがどのように問題を解決するかははっきりしません。あなたは説明する必要があります –
でしたあなたのために、この作品のようなもの?
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)} 'となります。 –
@RyanLueあなたは正しいです、私は私の答えを修正しました。 – yegor256
- 1. 再帰的取得ID
- 2. 再帰的にディレクトリを作成する
- 3. 再帰ディレクトリiteratorサブフォルダを持つファイルのファイルパスを取得
- 4. 再帰的なディレクトリを持つシェフテンプレート
- 5. オブジェクトのプロパティと子プロパティを再帰的に取得
- 6. Cのディレクトリを再帰
- 7. 特定のディレクトリに再帰的にフォルダを作成する
- 8. PHP SPLイテレータで空のディレクトリを再帰的に削除
- 9. すべてのディレクトリを再帰的にリストする方法は?
- 10. gitディレクトリの更新を再帰的にチェックする
- 11. bashのディレクトリ名を再帰的に変更する
- 12. ディレクトリを再帰的にリストするUnixのcプログラム
- 13. 2つのディレクトリを再帰的に比較すると、シェルスクリプト
- 14. ディレクトリ名の長さを再帰的にチェック
- 15. ディレクトリ内でファイルを再帰的に見つけるには
- 16. Perlを使ってFtpサーバから再帰的にディレクトリをコピー
- 17. ディレクトリを再帰的に名前を変更する方法
- 18. node.jsでディレクトリを再帰的に監視するapi
- 19. プログラムで再帰的にディレクトリを作成する
- 20. C#でファイルとディレクトリを再帰的に削除する
- 21. Intellijは再帰的に出力ディレクトリをネストします
- 22. Javaでディレクトリを再帰的に検索する
- 23. bashでディレクトリを再帰的にスキャンする
- 24. パスで再帰的パスキーを取得するPHP関数
- 25. Cディレクトリとサブディレクトリ再帰
- 26. は、再帰的に
- 27. 再帰的にバブルソート
- 28. 現在のディレクトリを除く再帰的scp
- 29. 再帰的なディレクトリ検索のXMLマッピングを生成する
- 30. 再帰的エラーハンドラ
関連:http://stackoverflow.com/questions/3632074/what-is-the -fastest-way-to-calculate-disk-usage-per-customer – coreyward
関連:http://stackoverflow.com/questions/4508692/get-available-diskspace-in-ruby – coreyward