Ну что тут скжешь? Я не понимаю почему.
package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.*;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) {
File fileIn = new File(args[1]); //Файл с контекстом всех файлом <50
File allFilesContent = new File(fileIn.getParent() + "/allFilesContent.txt");
if(allFilesContent.exists()){FileUtils.deleteFile(allFilesContent);}
FileUtils.renameFile(fileIn, allFilesContent);
ArrayList<File> files = new ArrayList<>();
wlakthrough(new File(args[0]), files);
Collections.sort(files, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
String fileName1 = o1.getName();
String fileName2 = o2.getName();
return fileName1.compareTo(fileName2);
}
});
try (FileOutputStream fos = new FileOutputStream(allFilesContent, true)) {
for(File f : files){
FileInputStream fis = new FileInputStream(f);
while(fis.available()>0)
{
fos.write(fis.read());
}
fis.close();
fos.write((byte)'\n');
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void wlakthrough(File directory, Collection<File> files){
if(!directory.exists() || !directory.isDirectory()){
return;
}
for(File file : directory.listFiles()){
if(file.isDirectory()){
wlakthrough(file, files);
}else if(file.length() <= 50){
files.add(file);
}
}
}
}