/
Andrey_Tkachenko
/
test
Обзор
Документация
Войти
/
Andrey_Tkachenko
/
test
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/org/example/FileSync.java
56 строк
3 KB
«Andrew»
initial commit
15 июл 2024, 12:29
15 июл 2024, 12:29
bfcf9ec
Код
Авторство
О чём код?
package org.example; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.util.Scanner; public class FileSync { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Введите путь к исходной папке:"); String sourceFolderPath = scanner.nextLine(); System.out.println("Введите путь к целевой папке:"); String destinationFolderPath = scanner.nextLine(); scanner.close(); try { syncFolders(new File(sourceFolderPath), new File(destinationFolderPath)); System.out.println("Синхронизация завершена успешно."); } catch (IOException e) { System.out.println("Ошибка синхронизации: " + e.getMessage()); } } public static void syncFolders(File sourceFolder, File destinationFolder) throws IOException { // Проверяем, существуют ли папки if (!sourceFolder.exists() || !destinationFolder.exists()) { throw new IOException("Исходная или целевая папка не существует."); } // Получаем список файлов и подпапок в исходной папке File[] files = sourceFolder.listFiles(); // Копируем каждый файл из исходной папки в целевую папку for (File file : files) { if (file.isDirectory()) { // Если это папка, создаем соответствующую папку в целевой директории File newDestinationFolder = new File(destinationFolder, file.getName()); newDestinationFolder.mkdirs(); // Рекурсивно копируем содержимое этой папки syncFolders(file, newDestinationFolder); } else { // Путь к файлу в целевой папке File destinationFile = new File(destinationFolder, file.getName()); // Копируем файл, заменяя существующий, если он есть Files.copy(file.toPath(), destinationFile.toPath(), StandardCopyOption.REPLACE_EXISTING); System.out.println("Скопирован файл: " + file.getName()); } } } }