指定ファイルのファイルサイズを求めるには・・・
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 件のコメント:
コメントを投稿