`
jackroomage
  • 浏览: 1200613 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

win2000和XP下得到硬盘剩余空间(用java调用windows命令)

阅读更多

package tigers;

import java.io.*;


public class Tiger19 {

 public static void main(String[] args) {
  try {
   for (char c = 'A'; c <= 'Z'; c++ ) {
    String dirName = c + ":\\";
    long freeSpace = getFreeDiskSpace(dirName);
    if (freeSpace != -1) {
     long number = Math.round(freeSpace / (1024.00 * 1024.00));
     System.out.println("<+>>>>" + dirName + " 剩余空间为: " + number + "MB");
    }
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 private static long getFreeDiskSpace(String dirName) throws Exception {
  String osName = System.getProperty("os.name");
  if (!(osName.equalsIgnoreCase("windows XP") || osName.equalsIgnoreCase("windows 2000"))) return -1;
  String command = "cmd exe /c dir " + dirName; //操作系统命令
  Process process = Runtime.getRuntime().exec(command); //执行操作系统命令。
  if (process == null) return -1;
  BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
  String line = "";
  String lastLine = "";
  while ((line = br.readLine()) != null) { //依次一行行读取,但while循环的目的只是得到最后一行字符。
   System.out.println(line);
   lastLine = line;
  }
  lastLine = lastLine.replaceAll(",", ""); //去掉如2,146,623,488中间的逗号。
  String[] items = lastLine.split(" ");
  long freeSpace = -1;
  for (int i = (items.length - 1); i > 0; i--) { //从最后一个字符串开始遍历。
   try {
    freeSpace = Long.parseLong(items[i]);
    break; //如果找到目的数据就跳出循环。
   } catch (NumberFormatException nfe) {
    continue; //跳过不是数字的字符。
   }
  }
  return freeSpace;
 }
}

 


转载请标明出处:http://blog.csdn.net/ggjjzhzz/archive/2005/03/16/321284.aspx

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics