MutableLong size = new MutableLong();
Files.walkFileTree(directoryPath, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
size.add(attrs.size());
}
}
Это вычислит размер всех файлов в каталоге. Тем не менее, обратите внимание, что все файлы в каталоге должны быть обычными файлами, так как API определяет метод размера BasicFileAttributes:
"Размер файлов, которые не являются обычными файлами, зависит от конкретной реализации и поэтому не указан."
Если вы наткнетесь на нерегулируемый файл, вам придется либо не включать его размер, либо возвращать неизвестный размер. Вы можете проверить, является ли файл обычным с
BasicFileAttributes.isRegularFile()