package com.javarush.task.task31.task3101;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.*;

/*
Проход по дереву файлов
*/
public class Solution {

    public static void main(String[] args) throws Exception{
        ArrayList<File> listFile = new ArrayList<>();
     File path = new File(args[0]);
     File resultFileAbsolutePath = new File(args[1]);
     processFilesFromFolder(path,listFile);
     File allFilesContent = new File(resultFileAbsolutePath.getParent()+"/allFilesContent.txt");
     FileUtils.renameFile(resultFileAbsolutePath, allFilesContent);
     FileOutputStream fileOutputStream = new FileOutputStream(allFilesContent);
     Collections.sort(listFile);

     for (File file: listFile) {
         FileInputStream fileInputStream = new FileInputStream(file);
         while (fileInputStream.available() > 0) {
             fileOutputStream.write(fileInputStream.read());
         }
         fileOutputStream.write(System.lineSeparator().getBytes());
         fileOutputStream.flush();
         fileInputStream.close();
     }
     fileOutputStream.close();
       }

    public static void processFilesFromFolder(File folder,ArrayList<File> list) {
        File[] folderEntries = folder.listFiles();
        for (File entry : folderEntries)
        {
            if (entry.isDirectory())
            {
                processFilesFromFolder(entry,list);
                continue;
            }
                if (entry.length() < 51)
                    list.add(entry);
        }
    }
}