俺とJava 〜HDDの容量(全容量・空き容量・使用量・使用率)を取得する〜
備忘録。主に俺用。
Java SE 6(Java1.6)以降で動作。
全容量と空き容量は、取得するメソッドが用意されている模様。
使用量・使用率は、それらから算出する必要アリ。
取得メソッド
- 全容量の取得
FileクラスのgetTotalSpace()を使用。
File (Java Platform SE 6) getTotalSpace()のJavadoc
- 空き容量の取得
FileクラスのgetFreeSpace()を使用。
File (Java Platform SE 6) getFreeSpace()のJavadoc
- 空き容量のうち、VMが使用可能な容量を取得
FileクラスのgetUsableSpace()を使用。
File (Java Platform SE 6) getUsableSpace()のJavadoc
使用例
import java.io.File; public class HDD_Tester { public static void main(String[] args) { // HDDのPathを指定... File file = new File("C:\\"); // 全容量を取得... double total = (double)file.getTotalSpace(); // 空き容量を取得(VMが使用できる空き容量を取得するならば、getUsableSpace()を用いる...) double free = (double)file.getFreeSpace(); // 既に使用されている容量を取得... double used = total - free; // ByteからGByteへ変換する為、1024の3乗で割る... double pow = java.lang.Math.pow(1024, 3); free = free / pow; total = total / pow; used = used / pow; // HDD使用率を求める... double usedSpacePercentage = used / total * 100; // 整形して表示... System.out.println(String.format("Total:%1$4.2f GB, Used:%2$4.2f GB, Free:%3$4.2f GB, Used(%%):%4$3.1f%%", total, used, free, usedSpacePercentage)); } }
実行結果
Total:93.15 GB, Used:61.35 GB, Free:31.80 GB, Used(%):65.9%
※言うまでもなく、実行結果はお使いの環境によって異なります。
備考
getTotalSpace()やgetFreeSpace()・getUsableSpace()の戻り値はByte数が返るので、
KByte表記にする … 1024で割る。
MByte表記にする … 1024の2乗で割る。
GByte表記にする … 1024の3乗で割る。
TByte表記にする … 1024の4乗で割る。
といった感じで。