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.util.Scanner;
/*
Перемещение файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
Path sourceDirectory = Path.of(scanner.nextLine());
Path targetDirectory = Path.of(scanner.nextLine());
try( DirectoryStream<Path> paths = Files.newDirectoryStream(sourceDirectory)){
for (Path path : paths){
if (Files.isRegularFile(path)){
Path change = targetDirectory.resolve(path.getFileName());
Files.move(path,change);
}
}
}
}
}
Почему мы в двух задачах используем метод resolve , который создает новый путь по имени файла path. Внутри методов не указано, что нужно создавать новый путь и тд. Так почему же это используется?Oilbanana
24 уровень
Почему мы используем resolve ?
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
xsidorovx
29 сентября 2022, 20:37
чтобы это понять, нужно прочитать описание метода тут -> docs.oracle.com
0
KIRAРазработчик в prosv.ruExpert
20 сентября 2022, 22:19решение
resolve это конкатенация путей
У вас есть директория в которую необходимо перенести файл
После resolve получается директория + / + имя файла
0
Saidamir
28 апреля 2023, 18:45
то есть по адресу должна быть не целевая директория, а файл (возможно с таким же именем) в той директории куда хотим копировать, тогда метод move заменит все содержимое целевого файла на содержимое копируемго файл и удалит сам оригинальный файл с первой директории, я правильно понял?
0
KIRAРазработчик в prosv.ruExpert
28 апреля 2023, 20:12
Вы указываете путь к файлу который нужно перенести, путь до папки куда нужно перенести + / + новое имя файла. Если в папке уже есть файл с именем который вы пытаетесь присвоить файлу который переносите будет ошибка, чтобы этого не произошло нужно передавать CopyOption
Files.move(source, target, REPLACE_EXISTING); Тогда будет замена
К примеру если вы переносите файл с одного раздела на другой никакого переноса на самом деле нет, файл просто копируется и удаляется старый.
+1
Saidamir
29 апреля 2023, 10:23
понял, спасибо
0