Как удалить файлы и каталоги в Java

Чтобы удалить файл в Java, мы можем использовать delete() метод из Files класс. Мы также можем использовать delete() для объекта, который является экземпляром File класс.

Пример:



Удаление файла с помощью класса Files

В приведенном ниже примере кода показано, как удалить файл с помощью Files класс:


import java.io.IOException; import java.nio.file.*; public class DeleteFile {
public static void main(String[] args) {
Path path = FileSystems.getDefault().getPath('./src/test/resources/newFile.txt');
try {

Files.delete(path);
} catch (NoSuchFileException x) {

System.err.format('%s: no such' + ' file or directory%n', path);
} catch (IOException x) {

System.err.println(x);
}
} }

Приведенный выше код удаляет файл с именем newFile.txt в ./src/test/resources/ каталог.

Кратное catch() блоки будут улавливать любые ошибки, возникающие при удалении файла.




Удаление файла с помощью класса File

Вместо использования delete() метод на Files класс, мы также можем использовать delete() для объекта, который является экземпляром File класс.

Пример:

import java.io.File; public class DeleteFile {
public static void main(String[] args) {
File myFile = new File('./src/test/resources/newFile.txt');
if (myFile.delete()) {

System.out.println('Deleted the file: ' + myFile.getName());
} else {

System.out.println('Failed to delete the file.');
}
} }


Удалить файл, если он существует

В следующем коде используется deleteIfExists() перед удалением файла.

import java.io.IOException; import java.nio.file.*; public class DeleteFile {
public static void main(String[] args) {
Path path = FileSystems.getDefault().getPath('./src/test/resources/newFile.txt');
try {

Files.deleteIfExists(path);
} catch (IOException x) {

System.err.println(x);
}
} }

В приведенном выше примере кода, если файл не существует, NoSuchFileException не брошено.




Удалить каталог

Мы также можем использовать приведенный выше код для удаления папки.

Если папка не пуста, a DirectoryNotEmptyException выбрасывается, поэтому мы должны явно перехватить исключение.

import java.io.IOException; import java.nio.file.*; public class DeleteFile {
public static void main(String[] args) {
Path path = FileSystems.getDefault().getPath('./src/test/resources');
try {

Files.deleteIfExists(path);
} catch (NoSuchFileException x) {

System.err.format('%s: no such' + ' file or directory%n', path);
} catch (DirectoryNotEmptyException x) {

System.err.format('%s not empty%n', path);
} catch (IOException x) {

System.err.println(x);
}
} }

Связанный: