2009年4月9日木曜日

フォルダのサイズを求めるJavaプログラム

今回はシンプルにJavaのプログラムサンプルです。
指定したディレクトリの論理的なファイルサイズを算出します。
ディレクトリ内にある全てのファイルのファイルサイズを合計します。
サブフォルダーがある場合には、サブフォルダー内のファイルサイズも加算します。
階層がいくら深くなってもどんどん加算します。


コマンドラインコール例

C:\> java  DirSize
2315491 .
C:\>
コマンドラインコール例

# java  DirSize  /home/root
328530000 /home/root
C:\>


DirSize.java
/**
* ディレクトリのサイズを求める
*
*/
public class DirSize {
/**
* @param args the command line arguments
*/
public static void main (String args[]) {
String checkdir;

if (args.length < 1) {
checkdir= ".";
}
else {
checkdir= args[0];
}

try {
System.out.println(DirSize.size(new File(checkdir)) +"\t"+ checkdir);
}
catch(Exception e) {
e.printStackTrace();
System.out.println(e.toString());
}
}

static long size(File file) throws IOException {
long size = 0L;
if (file == null) {
System.out.println("ERR: ディレクトリが見つかりませんでした。");
return size;
}

if (file.isDirectory()) {
File files[] = file.listFiles();
if (files != null) {
for (int i=0; i < files.length; i++) {
size += size(files[i]);
}
}
}
else {
size = file.length();
}
return size;
}
}

0 件のコメント: