Windowsでディスクの空き容量を取得
Windows上でJavaを使用して指定したディスクの空き容量の大きさを取得します.これは、Javaがコマンドラインコマンドを呼び出し、返された結果を分析して解析されます.コードは次のとおりです.
上記のプログラムでは、指定されたdiskmolが「d:」であると仮定すると、現在のDディスクで利用可能なバイト数を返すことができる.
/**
*
*
* @param diskVol
* :"d:"
* @return
* @throws IOException
*/
public Long getVolCapacity(String diskVol) throws IOException {
Long capacity = 0L;
String[] commands = new String[] { "cmd.exe", "/C",
"dir /-c " + diskVol };
Process process;
try {
//
process = Runtime.getRuntime().exec(commands);
} catch (IOException e) {
return capacity;
}
//
InputStream in = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line = null;
List<String> lines = new ArrayList<String>();
while ((line = reader.readLine()) != null) {
lines.add(line);
}
if (lines != null) {
line = lines.get(lines.size() - 1);
int endPos = line.length();
while (endPos-- >= 0) {
if (Character.isDigit(line.charAt(endPos))) {
break;
}
}
int startPos = endPos - 1;
while (startPos-- >= 0) {
if (!Character.isDigit(line.charAt(startPos))
&& line.charAt(startPos) != ','
&& line.charAt(endPos) != '.') {
break;
}
}
capacity = Long.valueOf(line.substring(startPos + 1, endPos + 1));
}
return capacity;
}
上記のプログラムでは、指定されたdiskmolが「d:」であると仮定すると、現在のDディスクで利用可能なバイト数を返すことができる.