После того как я вызываю
FileUtils.renameFile(resultFileAbsolutePath, new File(path + "\\allFilesContent.txt"));
Вижу что в файловой системе файл переименовывается, но в дебагере по прежнему resultFileAbsolutePath = тому что я указал в аргументах.
В итоге когда я пишу у файл названия файлов он создается, а allFilesContent.txt остается пустой.
Из-за этого все проверки летят к чертям.
Подскажите что что не так делаю? вроде же простой метод.package com.javarush.task.task31.task3101;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
ArrayList<String> fileArrayList = new ArrayList<>();
Set<File> directoryArrayList = new HashSet<>();
File path = new File(args[0]);
directoryArrayList.add(path);
File resultFileAbsolutePath = new File(args[1]);
FileUtils.renameFile(resultFileAbsolutePath, new File(path + "\\allFilesContent.txt"));
findAllDirs(path,directoryArrayList);
for (File mainPath: directoryArrayList) {
for (File file: mainPath.listFiles()) {
if (file.isFile() && (file.length() <= 50)) {
fileArrayList.add(file.getName());
}
}
}
Collections.sort(fileArrayList);
FileWriter fileWriter = new FileWriter(resultFileAbsolutePath);
for (String name : fileArrayList) {
fileWriter.write(name + "\n");
}
fileWriter.close();
}
public static void findAllDirs (File path, Set<File> directoryArrayList) {
if (path.isDirectory()) {
for (File file : path.listFiles() ) {
if (file.isDirectory()) {
directoryArrayList.add(file);
findAllDirs(file,directoryArrayList);
}
}
}
}
}