俺と何某。

底辺プログラマの備忘録/雑記帳/実験場

俺とJava 〜HDDの容量(全容量・空き容量・使用量・使用率)を取得する〜

備忘録。主に俺用。
Java SE 6(Java1.6)以降で動作。


全容量空き容量は、取得するメソッドが用意されている模様。
使用量・使用率は、それらから算出する必要アリ。

取得メソッド

使用例

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乗で割る。
といった感じで。

参考にさせて戴いた情報

Java SE 6 じゃじゃ馬ならし File