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;
}
}

结果:

驱动器 C 中的卷没有标签。
卷的序列号是 D44F-E6C7

C:\ 的目录

2004-10-26 17:56 0 AUTOEXEC.BAT
2004-10-26 17:56 0 CONFIG.SYS
2004-10-26 18:04 <DIR> Documents and Settings
2005-02-02 13:45 <DIR> Inetpub
2004-10-26 18:51 <DIR> mysql
2004-10-26 18:42 <DIR> NVIDIA
2005-02-07 17:10 <DIR> Program Files
2005-02-02 14:54 <DIR> WINDOWS
2 个文件 0 字节
6 个目录 4,155,437,056 可用字节
<+>>>>C:\ 剩余空间为: 3963MB
驱动器 D 中的卷没有标签。
卷的序列号是 4CC9-C042

D:\ 的目录

2005-01-18 18:09 <DIR> 2002周杰伦The_One台北演唱会
2005-01-18 18:08 <DIR> 2004孙燕姿长沙演唱会
2005-01-24 15:41 <DIR> Program Files
2005-01-19 18:38 <DIR> [百看综艺]孙燕姿2004年轻无极限北京演唱会by 100kanVIP
2005-01-08 11:31 <DIR> 上古卷轴3晨风
0 个文件 0 字节
5 个目录 2,146,623,488 可用字节
<+>>>>D:\ 剩余空间为: 2047MB
驱动器 E 中的卷是 ENGLISH
卷的序列号是 82FD-06B2

E:\ 的目录

2004-10-27 12:12 <DIR> Friends老友记(六人行)第一季
2004-10-27 12:17 <DIR> campaign2004
2004-10-27 12:18 <DIR> lifewords
2004-10-27 12:18 <DIR> 语音神II
2002-09-17 09:23 133,415 古希腊神话.chm
2004-10-27 13:12 <DIR> audio
2004-10-29 12:46 <DIR> 保镖
2004-10-30 09:18 <DIR> 西雅图不眠夜
2004-11-03 05:37 506,143,755 雨人-沪江影视英语学习素材-本素材仅供学习交流与收藏之用.rmvb
2004-11-08 18:04 551,582 wyabdc.zip
2001-10-04 22:03 <DIR> WORD_5000
2004-11-09 09:15 1,728 readme2.txt
2004-11-09 09:15 132 下载必读.txt
2004-11-10 11:53 <DIR> air
2004-11-10 11:53 <DIR> ZERO_8ISO
2004-11-25 17:08 <DIR> english
5 个文件 506,830,612 字节
11 个目录 1,382,211,584 可用字节
<+>>>>E:\ 剩余空间为: 1318MB
驱动器 F 中的卷是 DOWNLOAD
卷的序列号是 092E-C538

F:\ 的目录

2004-09-03 16:21 <DIR> linux
2004-08-20 13:57 <DIR> downloads
2004-08-20 14:09 <DIR> 金山毒霸
2004-08-20 14:18 <DIR> fedora
2004-08-20 15:27 <DIR> cpq6c
2004-08-21 17:46 <DIR> bitan-website
0 个文件 0 字节
6 个目录 711,237,632 可用字节
<+>>>>F:\ 剩余空间为: 678MB
驱动器 G 中的卷是 BITAN
卷的序列号是 4A54-A685

G:\ 的目录

2004-10-26 20:35 <DIR> kinddiary_save
2005-02-07 13:11 <DIR> workspace
2005-02-07 22:57 <DIR> test
2004-08-22 13:49 <DIR> bitan
2004-08-26 20:16 <DIR> java
2004-08-27 13:50 <DIR> eye-lib
2004-08-30 23:40 <DIR> www_eleaf_org
2004-09-17 19:52 <DIR> EDiary2.53
0 个文件 0 字节
8 个目录 3,166,339,072 可用字节
<+>>>>G:\ 剩余空间为: 3020MB
驱动器 H 中的卷是 MEDIA
卷的序列号是 8B7A-8A9A

H:\ 的目录

2004-12-23 03:16 212,302,277 文明古国-埃及.rmvb
2005-01-26 19:06 <DIR> MTV
2004-12-28 22:19 <DIR> 天下无贼
2004-08-24 23:44 <DIR> movies
2004-10-27 11:16 <DIR> music
2004-11-11 19:03 <DIR> workspace
1 个文件 212,302,277 字节
5 个目录 1,545,773,056 可用字节
<+>>>>H:\ 剩余空间为: 1474MB
驱动器 I 中的卷是 ANGEL
卷的序列号是 CCA0-7211

I:\ 的目录

2004-11-12 20:40 <DIR> Program Files
2004-10-31 21:01 <DIR> book
2004-12-24 18:54 <DIR> movies
2004-10-02 01:31 1,134,237 创造曲,D小调.mp3
2005-01-22 14:28 48,206 U970P8T1D129269F913DT20041221112837.jpg
2004-08-22 20:12 <DIR> music
2004-08-22 20:13 <DIR> pictrue
2004-08-22 20:13 <DIR> downloads
2005-01-22 14:28 51,172 U970P8T1D129270F913DT20041221112840.jpg
2005-01-22 14:28 50,043 U970P8T1D129271F913DT20041221112843.jpg
2004-08-27 18:24 <DIR> papa
2004-09-21 19:18 <DIR> wendang
2004-10-10 11:57 <DIR> english
4 个文件 1,283,658 字节
9 个目录 2,524,266,496 可用字节
<+>>>>I:\ 剩余空间为: 2407MB
驱动器 J 中的卷是 SAVE
卷的序列号是 B879-DD51

J:\ 的目录

2004-10-26 18:10 <DIR> ghost-save
2004-09-19 16:29 <DIR> bitan
2004-10-30 10:37 <DIR> 走遍美国视频
2004-09-29 19:35 <DIR> linux
2005-01-27 15:55 <DIR> ghost
2005-01-31 17:51 <DIR> 3D动画
2005-01-31 17:54 <DIR> 与地球同行
2005-01-31 17:58 <DIR> 与野兽同行
0 个文件 0 字节
8 个目录 3,276,644,352 可用字节
<+>>>>J:\ 剩余空间为: 3125MB
驱动器 K 中的卷是 JAVAWORK
卷的序列号是 05FA-1A24

K:\ 的目录

2004-09-16 12:02 <DIR> eclipse3.0
2004-12-24 18:59 <DIR> papa
2004-11-29 19:26 <DIR> MyEclipse
2003-08-12 14:08 <DIR> ant
2004-11-14 01:05 <DIR> TogetherEC
2004-10-26 18:22 <DIR> j2se
2004-11-25 15:27 <DIR> Program Files
2004-12-12 16:33 <DIR> webServices
2004-09-20 04:40 <DIR> jboss
2005-02-01 09:35 <DIR> sqlserver
2004-12-16 20:24 <DIR> eclipse
2004-12-09 19:57 <DIR> jdonsrc
2004-12-12 20:39 <DIR> Apache2
2004-06-17 21:09 <DIR> tomcat5
2004-12-31 12:19 <DIR> tiger
2005-01-30 19:07 <DIR> hibernate
2005-02-02 13:21 <DIR> Merak
2005-02-01 11:54 <DIR> test25
2004-10-29 15:14 <DIR> tomcat
2004-10-26 20:38 <DIR> kinddiary_save
2004-10-27 09:33 <DIR> workspace
2004-10-27 13:35 <DIR> WEB-SRC
2004-10-30 09:20 <DIR> books
0 个文件 0 字节
23 个目录 320,792,576 可用字节
<+>>>>K:\ 剩余空间为: 306MB
驱动器 L 中的卷是 BACKUP
卷的序列号是 4778-A427

L:\ 的目录

2004-12-12 17:19 <DIR> oracle
0 个文件 0 字节
1 个目录 2,883,919,872 可用字节
<+>>>>L:\ 剩余空间为: 2750MB

你可能感兴趣的:(java,windows,linux,XP,金山)