ドライブ毎の空き容量を表示する。

小さいけど実用になるGroovyコードのメモ。

その昔、DOSで動く FREE.COMというツールがありました。
各ドライブ事の残量を示してくれました。大きなファイルを書き出したりする前に
最も大きな空きスペースのドライブを確認するときなどに便利でした。
ファイル名は "FREE.COM" などと言う、おいしすぎる名前なので、
もはやネット検索でも、再発見はできそうにない名前ですので、
記憶していたイメージにもとづきGroovyで再開発してみました。
Windows専用になります。
(drive in "C".."Z") という拡張for文がちょっと便利ですね。

動作イメージ

drv [  空き ]G [  総計 ]G [Free]%
C:\ [   49.0]G [  110.7]G [44.3]%
D:\ [   16.0]G [   99.8]G [16.1]%
Z:\ [    0.3]G [    0.3]G [100.0]%

ソース

println "drv [  free ]G [ total ]G [free]%"
for (drive in "C".."Z") {
	file = new File("${drive}:/") 
	BigDecimal free = file.getFreeSpace()/100000000
	BigDecimal total= file.getTotalSpace()/100000000
	if (total >0) {
		print file
		BigDecimal vaca = free/total*100
		printf (" [%7.1f]G [%7.1f]G [%2.1f]",free,total,vaca)
		println "%"
	}
}