指定したディレクトリの論理的なファイルサイズを算出します。
ディレクトリ内にある全てのファイルのファイルサイズを合計します。
サブフォルダーがある場合には、サブフォルダー内のファイルサイズも加算します。
階層がいくら深くなってもどんどん加算します。
コマンドラインコール例
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 件のコメント:
コメントを投稿