Опытные кодеры на JAVA!
/*upd <04/02/2021>
* Решено: Валидатор бажит.
* Файлы теперь перемещаются, код вернул обратно. Оставлю на потом: магия в программе = некачественный дебаг !
*/
Файлы из исходной директории действительно не удаляются.
deleteFile | deleteFilesIfExists - вставил от безысходности. Гугл не помогает,
package com.javarush.task.pro.task15.task1520;
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Scanner;
/*
Перемещение файлов
*/
/**
* Перемещение файлов
* Напиши программу, которая будет считывать с клавиатуры пути к двум директориям и перемещать файлы из одной директории
* в другую (только файлы, директории игнорируй).
* Используй соответствующие методы класса Files: newDirectoryStream(), isRegularFile() или isDirectory(), move().
* <p>
* Требования:
* 1. Программа должна считать из консоли пути к директориям.
* 2. В программе должны быть использованы соответствующие методы класса Path согласно условию.
* 3. Программа должна перемещать файлы из одной директории в другую согласно условию.
* 4. Не используй следующие классы: File, FileInputStream, FileOutputStream, FileReader, FileWriter пакета java.io.
*/
public class Solution {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
Path sourceDirectory = Paths.get(scanner.nextLine());
Path targetDirectory = Paths.get(scanner.nextLine());
//напишите тут ваш код
try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(sourceDirectory)) {
if (Files.isDirectory(targetDirectory)) {
for (Path path : directoryStream) {
if (Files.isRegularFile(path)) {
Path move = Files.move(path, Paths.get(targetDirectory.toString(), path.getFileName().toString()));
Files.deleteIfExists(path);
}
}
}
} catch (Exception e) {
}
}
}