Get size of folder or file
filesystems, java
Solution
java.io.File file = new java.io.File("myfile.txt");
file.length();
This returns the length of the file in bytes or `0` if the file does not exist. There is no built-in way to get the size of a folder, you are going to have to walk the directory tree recursively (using the `listFiles()` method of a file object that represents a directory) and accumulate the directory size for yourself:
public static long folderSize(File directory) {
long length = 0;
for (File file : directory.listFiles()) {
if (file.isFile())
length += file.length();
else
length += folderSize(file);
}
return length;
}
WARNING: This method is not sufficiently robust for production use. `directory.listFiles()` may return `null` and cause a `NullPointerException`. Also, it doesn't consider symlinks and possibly has other failure modes. Use this method.
Problem
How can I retrieve size of folder or file in Java?