How to find how much disk space is left using Java?
Solution 1:
Have a look at the File class documentation. This is one of the new features in 1.6.
These new methods also include:
public long getTotalSpace()
public long getFreeSpace()
public long getUsableSpace()
If you're still using 1.5 then you can use the Apache Commons IO library and its FileSystem class
Solution 2:
Java 1.7 has a slightly different API, free space can be queried through the FileStore class through the getTotalSpace(), getUnallocatedSpace() and getUsableSpace() methods.
NumberFormat nf = NumberFormat.getNumberInstance();
for (Path root : FileSystems.getDefault().getRootDirectories()) {
System.out.print(root + ": ");
try {
FileStore store = Files.getFileStore(root);
System.out.println("available=" + nf.format(store.getUsableSpace())
+ ", total=" + nf.format(store.getTotalSpace()));
} catch (IOException e) {
System.out.println("error querying space: " + e.toString());
}
}
The advantage of this API is that you get meaningful exceptions back when querying disk space fails.
Solution 3:
Use CommonsIO and FilesystemUtils:
https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileSystemUtils.html#freeSpaceKb()
e.g.
FileSystemUtils.freeSpaceKb("/");
or built into the JDK:
http://java.sun.com/javase/6/docs/api/java/io/File.html#getFreeSpace()
new File("/").getFreeSpace();
Solution 4:
in checking the diskspace using java you have the following method in java.io File class
- getTotalSpace()
- getFreeSpace()
which will definitely help you in getting the required information. For example you can refer to http://javatutorialhq.com/java/example-source-code/io/file/check-disk-space-java/ which gives a concrete example in using these methods.