Удалить файл в Java можно несколькими способами: с помощью стандартного API и с помощью сторонних библиотек. В этой статье мы рассмотрим три способа:

  • с помощью Files.delete
  • с помощью Files.deleteIfExists
  • с помощью FileUtils.deleteQuietly

Примечание 1: если вместо файла передан путь к директории, указанная директория будет удалена, если она пуста.

Примечание 2: если вместо файла указана символическая ссылка, она будет удалена, но файл не будет затронут.

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

Первый способ удалить файл – это воспользоваться стандартным методом Files.delete:

try {
    Files.delete(Paths.get("/home/alex/test"));
}  catch (IOException x) {
    System.err.println(x);
}

Стоит заметить, что метод Files.delete может генерировать исключения, поэтому его придётся завернуть в блок try-catch. Например, если указанный файл не найден, будет сгенерировано исключение NoSuchFileException .

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

Следующий способ – использовать метод Files.deleteIfExists, который возвращает true или false в зависимости от того, получилось ли удалить указанный файл:

try {
    Files.deleteIfExists(Paths.get("/home/alex/test"));
} catch (IOException e) {
    System.err.println(e);
}

Также метод Files.deleteIfExists отличается от Files.delete тем, что не выбрасывает исключение NoSuchFileException в случае, если файл не найден.

Удаление файла с помощью FileUtils.deleteQuietly

Следующий способ – использовать библиотеку Commons IO. Для этого нужно подключить библиотеку в проект:

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.7</version>
</dependency>

И воспользоваться методом FileUtils.deleteQuietly:

FileUtils.deleteQuietly(new File("/home/alex/test"));

Этот метод не генерирует исключений в случае, если файл не найден или произошла другая ошибка при попытке удалить указанный файл.

Исходный код

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.nio.file.*;

public class RemoveFile {
    public static void main(String[] args) {
        try {
            Files.delete(Paths.get("/home/alex/test"));
        } catch (IOException x) {
            System.err.println(x);
        }

        try {
            Files.deleteIfExists(Paths.get("/home/alex/test"));
        } catch (IOException e) {
            System.err.println(e);
        }

        FileUtils.deleteQuietly(new File("/home/alex/test"));
    }
}

Заключение

В данной статье мы рассмотрели различные способы для того, чтобы удалить файл. Вы можете воспользоваться любым исходя из ваших требований.

Как удалить файл