本例以Windows, JDK1.7 为基础,来演示使用Java 获取磁盘空间容量信息。

从JDK 1.6 开始, Java 增加了getTotalSpace(), getUsableSpace() 和 getFreeSpace() 三个方法,可以对磁盘容量空间容量信息进行获取。

获取磁盘空间容量

FileDiskSpace.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.devnp.io;

import java.io.File;

public class FileDiskSpace {

public static void main(String[] args) {
// TODO Auto-generated method stub

File file = new File("D:");

long totalSpace = file.getTotalSpace(); //磁盘总容量
long usableSpace = file.getUsableSpace(); //磁盘可用容量
long freeSpace = file.getFreeSpace(); //磁盘空闲容量

System.out.println("Disk Total Size : " + totalSpace + " bytes");
System.out.println("Disk Usable Size : " + usableSpace + " bytes");
System.out.println("Disk Free Size : " + freeSpace + " bytes");
}

}

运行结果
1
2
3
Disk Total Size : 248664551424
Disk Usable Size : 46320726016
Disk Free Size : 46320726016

相关

1.关于getUsableSpace() 和 getFreeSpace()方法不同之处?
就文档解释而已,如下: 1) getUsableSpace() 通过此抽象路径名返回分区上此虚拟机可用的字节数。 在可能的情况下,此方法会检查写入权限和其他操作系统限制,因此通常会提供比getFreeSpace更准确地估计实际写入新数据的数量

2) getFreeSpace()
通过此抽象路径名返回分区上此虚拟机可用的字节数.

通常就使用来说这两方法并不多大差别。