指定ファイルのファイルサイズを求めるには・・・
public static int getFileSize(File file) { // ファイル以外は0固定 if (!file.isFile()) { return 0; } int size = 0; FileInputStream stream = null; try { stream = new FileInputStream(file); size = stream.available(); } catch (IOException e) { Logger.error("io error.", e); } finally { if (stream != null) { try { stream.close(); } catch (IOException e) { } } } return size; }ディレクトリの容量を求めるには・・・
考え方としては、指定ディレクトリ配下を再帰的に検索し、全ファイルのファイルサイズを足しこむ。
public static int getDirSize(File dir) { if (!dir.isDirectory()) { return getFileSize(dir); } // 最終的なサイズ int totalSize = 0; // 一覧を取得 File[] items = dir.listFiles(); if (items == null) { return totalSize; } for (File item : items) { if (item.isDirectory()) { totalSize += getDirSize(item); } else { totalSize += getFileSize(item); } } return totalSize; }上位ディレクトリで実行すると、時間が物凄くかかるので要注意!
以上。
0 件のコメント:
コメントを投稿