import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;

public class Main {

    public static void main(String[] args) {

        /*
          Ищет в каталоге /var/data самый большой по объёму файл и перекладывает его в /var/result/data.txt.
         */

        File sourceDir = new File("/var/data");
        File targetFile = new File("/var/result/data.txt");

        // Проверяем, что sourceDir существует и является директорией
        if (!sourceDir.exists() || !sourceDir.isDirectory()) {
            System.out.println("Каталог " + sourceDir + " не существует или не является директорией.");
            return;
        }

        File[] files = sourceDir.listFiles();
        if (files == null || files.length == 0) {
            System.out.println("Каталог " + sourceDir + " пуст.");
            return;
        }

        long maxFileSize = -1L;
        File maxFile = null;

        // Находим файл с максимальным размером
        for (File item : files) {
            if (item.isFile() && item.length() > maxFileSize) {
                maxFileSize = item.length();
                maxFile = item;
            }
        }

        if (maxFile != null) {
            // Проверяем, существует ли конечная директория, если нет — создаем её
            File targetDir = targetFile.getParentFile();
            if (!targetDir.exists()) {
                boolean dirCreated = targetDir.mkdirs();
                if (dirCreated) {
                    System.out.println("Директория " + targetDir + " была успешно создана.");
                } else {
                    System.out.println("Не удалось создать директорию " + targetDir);
                    return;
                }
            }

            try {
                // Копируем файл
                Files.copy(maxFile.toPath(), targetFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
                System.out.println("Самый большой файл: " + maxFile.getName() + " был скопирован в /var/result/data.txt");
            } catch (IOException e) {
                System.out.println("Ошибка копирования файла: " + e.getMessage());
            }
        } else {
            System.out.println("Файлы для копирования не найдены.");
        }
    }
}