Уже 3я реализация программы, во всех вывод был правильный.
Вот тут уже почти копия решения, в чем же проблема?
package com.javarush.task.task31.task3113;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
/*
Что внутри папки?
*/
public class Solution{
public static void main(String[] args) throws IOException {
String fileName = new BufferedReader(new InputStreamReader(System.in)).readLine(); //D:\Work\tests
Path path = Paths.get(fileName);
if (!path.toFile().isDirectory()) {
System.out.println(path.toAbsolutePath() + " - не папка");
} else {
AtomicInteger foldersCount = new AtomicInteger(-1);
AtomicInteger filesCount = new AtomicInteger(0);
AtomicLong generalSize = new AtomicLong(0);
Solution solution = new Solution();
Files.walkFileTree(path, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (file.toFile().isFile()) {
filesCount.incrementAndGet();
generalSize.addAndGet(attrs.size());
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
if (dir.toFile().isDirectory()) {
foldersCount.incrementAndGet();
}
return FileVisitResult.CONTINUE;
}
});
System.out.println("Всего папок - " + foldersCount);
System.out.println("Всего файлов - " + filesCount);
System.out.println("Общий размер - " + generalSize);
}
}
}