package com.javarush.task.task31.task3101;

import java.io.*;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.*;

/*
C:\Users\Елизавета\Desktop\TestFolder
C:\Users\Елизавета\Desktop\resultFileAbsolutePath.txt
*/
public class Solution {
    public static void main(String[] args) throws IOException {
        Path folder = Paths.get(args[0]);//папка для обхода, 1 аргумент
        System.out.println("#1 " + folder.getParent().toString() + "\\" +folder.getFileName());
        File sourceFile = new File(args[1]);// файл, куда будет записан результат
        System.out.println("#2 " + sourceFile.getName());
        File resultFile = new File(sourceFile.getParent() +  "/allFilesContent.txt"); //файл, в который будет переименоват результирующий файл
        System.out.println("#3 " + resultFile.getName());
        TreeMap<String, Path> map = new TreeMap<>();
        System.out.println("#4 create TreeMap");


        if (FileUtils.isExist(resultFile)){
            //если в условии isExist, то 5 и 6 пункт выполняются, но результат -  Can not rename file with name resultFileAbsolutePath.txt
            //если в условии !isExist, то 5 и 6 пункт игнорируются
            System.out.println("#5 try to rename file");
            FileUtils.renameFile(sourceFile, resultFile);
            System.out.println("#6 rename?");
        }

        Files.walkFileTree(folder, new SimpleFileVisitor<Path>(){
            @Override
            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                System.out.println("#7 escape to method visitFile");
                if (!Files.isDirectory(file) && Files.readAllBytes(file).length<=50){
                    System.out.println("#8 map.put");
                    map.put(file.getFileName().toString(), file);
                }
                return super.visitFile(file, attrs);
            }
        });

        try (BufferedWriter writer = new BufferedWriter(new FileWriter(resultFile, true))){
            System.out.println("#8 write data from msp to file:");
            for (Map.Entry<String, Path> entry : map.entrySet()) {
                System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); //this statement prints out my keys and values
                BufferedReader reader = new BufferedReader(new FileReader(entry.getValue().toFile()));
                while (reader.ready()) {
                    writer.write(reader.readLine());
                    writer.write(System.lineSeparator());
                }
                reader.close();
                System.out.println("Done");
            }
        }
    }
}
Результат логов: #1 C:\Users\Елизавета\Desktop\TestFolder #2 resultFileAbsolutePath.txt #3 allFilesContent.txt #4 create TreeMap #5 try to rename file Can not rename file with name resultFileAbsolutePath.txt #6 rename? #7 escape to method visitFile #8 map.put #7 escape to method visitFile #7 escape to method visitFile #8 map.put #8 write data from msp to file: Key = FileForTest-1.txt, Value = C:\Users\Елизавета\Desktop\TestFolder\FileForTest-1.txt Done Key = FileForTest-3.txt, Value = C:\Users\Елизавета\Desktop\TestFolder\InnerTestFolder\FileForTest-3.txt Done Process finished with exit code 0 Обход папок и запись в файл проходит хорошо и правильно.