java 得到本机 D盘的大小

qianglemo 2011-08-12 02:38:46
得到本机D 盘的大小,及使用情况...
...全文
199 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenhua 2012-01-16
  • 打赏
  • 举报
回复
楼主不地道啊。人家都解决问题了。都没结贴。汗....
没事眯一会 2011-08-16
  • 打赏
  • 举报
回复
mark
iis81365341 2011-08-16
  • 打赏
  • 举报
回复
Java1.5及以前版本:windows操作系统中可以执行“dir d:\”命令可获取磁盘中的剩余空间。

驱动器 D 中的卷是 SYSDISK
卷的序列号是 C835-E234

d:\ 的目录

2010-08-04 00:25 <DIR> Tomcat 7.0.2
2011-07-29 08:37 <DIR> WINDOWS
6 个文件 890,423 字节
16 个目录 2,186,084,352 可用字节

其中最后一行“2,186,084,352 可用字节”即为剩余空间。可以使用流进行获取。至于磁盘大小就无法获取了。

如果有C或C++写的动态连接库可以使用JNI调用。如果有C或C++写的窗口程序,也可以直接使用Process然后再用流获取。
jianyou672 2011-08-16
  • 打赏
  • 举报
回复
开眼了。
weiyonghello 2011-08-16
  • 打赏
  • 举报
回复
上面的方法正解!
风尘中国 2011-08-13
  • 打赏
  • 举报
回复
如果在JDK6之前,针对某个具体操作系统,比如windows可以用java开启一个新的进程,执行操作系统的命令查看D盘相关的信息,用到的是Process和Runtime等这些对象,windows下可以用wmic或者简单的批处理命令,看你想要获得哪些具体D盘信息了,只是容量的话没必要大费周折
[Quote=引用 2 楼 bao110908 的回复:]

JDK 6 中 File 加了个 getTotalSpace 方法可以获得,JDK 6 以下版本没有办法。
[/Quote]
  • 打赏
  • 举报
回复
JDK 6 中 File 加了个 getTotalSpace 方法可以获得,JDK 6 以下版本没有办法。
铁匠梁 2011-08-13
  • 打赏
  • 举报
回复
JDK1.6方法

public static void DiskInfos() {
File[] roots = File.listRoots();// 获取分区信息
for (File file : roots) {
System.out.println(file.getPath() + "盘使用情况:");
System.out.print("已使用 = " + file.getUsableSpace() / 1024d / 1024d/ 1024d + "G, ");
System.out.print("还剩 = " + (file.getTotalSpace()-file.getUsableSpace()) / 1024d / 1024d /1024d+ "G, ");
System.out.println("总容量 = " + file.getTotalSpace() / 1024d / 1024d / 1024d + "G");
System.out.println();
}
}


运行结果:
C:\盘使用情况:
已使用 = 7.13995361328125G, 还剩 = 11.490081787109375G, 总容量 = 18.630035400390625G

D:\盘使用情况:
已使用 = 5.105224609375G, 还剩 = 41.45086669921875G, 总容量 = 46.55609130859375G

E:\盘使用情况:
已使用 = 4.6920061111450195G, 还剩 = 41.8984489440918G, 总容量 = 46.590455055236816G

F:\盘使用情况:
已使用 = 0.0G, 还剩 = 0.0G, 总容量 = 0.0G
F盘是光驱盘,所以是0
softroad 2011-08-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bao110908 的回复:]

JDK 6 中 File 加了个 getTotalSpace 方法可以获得,JDK 6 以下版本没有办法。
[/Quote]

学习了。。。
jingluo 2011-08-13
  • 打赏
  • 举报
回复
用shell调用windows的api之类

话说,你这需求似乎很少碰到啊
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ioe_gaoyong 的回复:]

如果在JDK6之前,针对某个具体操作系统,比如windows可以用java开启一个新的进程,执行操作系统的命令查看D盘相关的信息,用到的是Process和Runtime等这些对象,windows下可以用wmic或者简单的批处理命令,看你想要获得哪些具体D盘信息了,只是容量的话没必要大费周折
引用 2 楼 bao110908 的回复:

JDK 6 中 File 加了个 getTotalSp……
[/Quote]

需要你可以很方便地执行 Process 操作,但实际上这样的效率由于涉及进程间调用及数据交互,因此是极其低下的,在开发中原则是不应该使用的。
luohuijun619 2011-08-13
  • 打赏
  • 举报
回复
java中好像只可以获取文件的大小,
softroad 2011-08-12
  • 打赏
  • 举报
回复
貌似,没有直接的方法吧,期待高手
可以调用win api吧

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧