再帰的に計算されたディレクトリサイズを取得するための良い宝石ですか? 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. Powershell:再帰的にディレクトリのアクセス権を取得
- 2. ディレクトリを再帰的にブラウズしてファイル名を取得する
- 3. CMake:ディレクトリのリストを取得する(非再帰的)
- 4. 再帰的取得ID
- 5. ディレクトリ内のすべてのファイルを再帰的に取得するNodejS
- 6. 再帰的にディレクトリを作成する
- 7. 再帰的スイッチを使用せずにディレクトリからファイル名とファイルサイズを取得
- 8. フォルダを持つディレクトリを再帰的に読み取る
- 9. 再帰ディレクトリiteratorサブフォルダを持つファイルのファイルパスを取得
- 10. 再帰的なディレクトリを持つシェフテンプレート
- 11. Javaの再帰的ディレクトリ一覧
- 12. 奇妙な再帰的なディレクトリ構造
- 13. C#プロパティを取得し、子フィールドのプロパティを再帰的に
- 14. PHP - ディレクトリを再帰的から反復的にブラウズする
- 15. MySQLで再帰的にマネージャーの従業員数を取得
- 16. 入れ子リストの総数を再帰的に取得する
- 17. C#オブジェクトの位置を再帰的に取得
- 18. すべてのサブクラスを再帰的に取得する
- 19. オブジェクトのプロパティと子プロパティを再帰的に取得
- 20. Cのディレクトリを再帰
- 21. 特定のディレクトリに再帰的にフォルダを作成する
- 22. C#で再帰的な選択を取得するには?
- 23. azureファイルストレージからファイルを再帰的に取得する#
- 24. ディレクトリ内のファイルを再帰的に検索する
- 25. bashのディレクトリ名を再帰的に変更する
- 26. gitディレクトリの更新を再帰的にチェックする
- 27. ディレクトリ内のファイルを再帰的に処理する
- 28. PHP SPLイテレータで空のディレクトリを再帰的に削除
- 29. HDFSディレクトリのスパークストリーミングを再帰的に監視する
- 30. は再帰的にディレクトリを移動して、現在のCLI
関連: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