Почему размер папки не отображается или равен нулю?

Как переписать Java-код, чтобы посчитать общее количество папок и файлов в указанной директории, а также вывести общий размер всех файлов в байтах?
  • 20 июня 2024 г. 10:51
Ответы на вопрос 2
Причины, по которым размер папки не отображается или равен нулю, могут быть разными. Например, это может быть связано с тем, что операционная система не учитывает размер всех файлов в данной папке или у пользователя нет прав доступа к определённым файлам.

Чтобы переписать Java-код для подсчёта общего количества папок и файлов в указанной директории и вывода общего размера всех файлов в байтах, можно воспользоваться следующим кодом:

```java
import java.io.File;

public class DirectoryStatistics {

    public static void main(String[] args) {
        File directory = new File("путь_к_директории");
        if(directory.exists() && directory.isDirectory()) {
            int filesCount = 0;
            int foldersCount = 0;
            long totalSize = 0;
            
            File[] files = directory.listFiles();
            for(File file : files) {
                if(file.isFile()) {
                    filesCount++;
                    totalSize += file.length();
                } else if(file.isDirectory()) {
                    foldersCount++;
                }
            }
            
            System.out.println("Total files: " + filesCount);
            System.out.println("Total folders: " + foldersCount);
            System.out.println("Total size in bytes: " + totalSize);
        } else {
            System.out.println("Directory does not exist or is not a valid directory.");
        }
    }
}
```

Необходимо заменить `"путь_к_директории"` на путь к нужной директории. После запуска этого кода будет выведено общее количество файлов и папок в указанной директории, а также общий размер всех файлов в байтах.
Надо этот total count учитывать внутри волкера. 

@Override
            public FileVisitResult visitFile(Path path, BasicFileAttributes attr) {
                totalFiles.incrementAndGet();
                totalCount.addAndGet(............); // Add file length
                return FileVisitResult.CONTINUE;
            }
Похожие вопросы