package com.javarush.task.task31.task3101;

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

/*
Проход по дереву файлов
*/

public class Solution {
    public static void main(String[] args) throws IOException {
        String path = args[0];
        String result = args[1];
        File directoryName = new File(path);
        File resultFileAbsolutePath = new File(result);
        FileUtils.renameFile(resultFileAbsolutePath, new File(resultFileAbsolutePath.getParentFile() + "/allFilesContent.txt"));
        List<File> list = new ArrayList<>();
        Queue<File> que = new LinkedList<>();
        que.add(directoryName);
        while (que.peek() != null) {
            File papka = que.remove();
            for (File file : papka.listFiles()) {
                if (file.isDirectory()) {
                    que.add(file);
                } else {
                    if (file.length() <= 50) {
                        list.add(file);
                    }
                }
            }
        }
        Collections.sort(list);
        FileWriter fileWriter = new FileWriter(resultFileAbsolutePath);
        for (int i = 0; i < list.size(); i++) {
            BufferedReader reader = new BufferedReader(new FileReader(list.get(i)));
            String value = "";
            while (reader.ready()) {
                value = reader.readLine();
                fileWriter.write(value);
            }
            fileWriter.write("\n");
        }
        fileWriter.close();
    }
}