Files.move()
Перемещает или переименовывает файл или папку.
Доступно с: Java 7
Синтаксис
public static Path move(Path source, Path target, CopyOption... options)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| source | Path | Что перемещать. |
| target | Path | Новый путь, включая имя. |
| options | CopyOption... | Необязательно: REPLACE_EXISTING, ATOMIC_MOVE. |
Возвращаемое значение
PathНовый путь.
Примеры
Переименование файла в той же папке:
void main() throws IOException {
Path dir = Files.createTempDirectory("demo");
Path draft = Files.writeString(dir.resolve("draft.txt"), "Report");
Path report = Files.move(draft, dir.resolve("report.txt"));
IO.println(report.getFileName());
IO.println(Files.exists(draft));
}Результат:
report.txt
falseПеремещение в другую папку с заменой существующего файла:
void main() throws IOException {
Path dir = Files.createTempDirectory("demo");
Path archive = Files.createDirectories(dir.resolve("archive"));
Files.writeString(archive.resolve("log.txt"), "old log");
Path log = Files.writeString(dir.resolve("log.txt"), "new log");
Files.move(log, archive.resolve("log.txt"), StandardCopyOption.REPLACE_EXISTING);
IO.println(Files.readString(archive.resolve("log.txt")));
}Результат:
new logПримечания
Без REPLACE_EXISTING перемещение на место существующего файла бросает FileAlreadyExistsException. Папка назначения должна существовать. ATOMIC_MOVE гарантирует, что другие программы увидят либо старый, либо новый файл, но не половину — удобно для записи через временный файл. Перемещение папки на другой диск может не сработать: тогда её копируют и удаляют.
См. также
- Files.copy() — Копирует файл. По умолчанию не перезаписывает существующий файл.
- Files.delete() — Удаляет файл или пустую папку. Вариант deleteIfExists() не бросает исключение, если файла нет.
- Files.createDirectories() — Создаёт папку вместе со всеми недостающими родительскими папками.
- Path.of() — Создаёт объект Path — путь к файлу или папке.
В учебнике
- Файлы и пути — Работа с файловой системой в Java — Path, Files.exists, создание папок и файлов, размер, копирование, перемещение, удаление и список файлов.