在 Java 5 中获取驱动器大小
我想要获取驱动器的大小(或指向分区的 UNC 路径很好,但不是必需的),以及所述驱动器(或 UNC 路径)的可用空间。 这不需要跨平台工作; 仅在 Windows 中。
我知道在 Java 6 中这很容易做到,但这不是一个选择; 我被 Java 5 困住了。
我可以通过执行以下操作来获取可用空间:
cmd.exe /c Z:\ /-c
或
cmd.exe /c \\服务器\共享/-c
并仅解析出结果字节。 但是我似乎无法找到获取总驱动器大小的方法。
有什么建议么?
I want to get the size of a drive (or UNC path pointing to a partition would be nice, but not required), as well as free space for said drive (or UNC path). This doesn't need to work cross platform; only in Windows.
I know it's easy to do in Java 6, but that's not an option; I'm stuck with Java 5.
I can get the free space available by doing:
cmd.exe /c Z:\ /-c
or
cmd.exe /c \\server\share /-c
and just parsing out the resulting bytes free. However I can't seem to find a way to get the total drive size.
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
一种方法是在命令行上使用 fsutil。 它返回如下内容:
将扇区数乘以每个扇区的字节数即可得到大小。
One way to do it would be to use fsutil on the command line. It returns something like this:
Multipy your number of sectors times the bytes per sector to get your size.
如果您对此感到满意,您可以使用 JNI 调用非常轻松地完成此操作...
如果您想要一个可以与 JDK1.5 一起使用的预打包库,请查看 Apache FileSystemUtils
这只是包装您描述的系统调用,但至少它是一个标准库,您可以使用它,直到您能够使用 1.6。
You could do this pretty easily using a JNI call if you are comfortable with that...
If you want a pre-packaged library that you can use with JDK1.5, take a look at the Apache FileSystemUtils
This just wraps the system call that you describe, but at least it's a standard library that you can use until you are able to use 1.6.
您可以使用 SIGAR 库,它使您可以在许多平台上进行本机访问。
You could use the SIGAR library, which gives you native access on many platforms.