如何在 Java 中删除文件或目录

原文:https://www.studytonight.com/java-examples/how-to-delete-a-file-or-directory-in-java

在这篇文章中,我们将使用 Java 代码删除一个文件或目录。Java 提供了一个File类,它包含像delete()deleteOnExit()这样的方法来删除指定的资源文件或目录。

当我们希望在创建新版本文件来替换旧版本文件后使用代码删除文件时,这很有帮助。

delete()方法删除位置表示的文件或目录。如果指定的位置路径表示一个目录,则该目录必须为空。

如果文件或目录无法删除,则抛出IOException

此方法返回真或假的布尔值。

时间举例

让我们创建一个使用delete()方法删除文件的例子。如果文件被成功删除,此方法返回 true。

import java.io.File;
public class Main {

    public static void main(String[] args){
        try {
            File file = new File("abc.txt");
            boolean delete = file.delete();
            if(delete) {
                System.out.println("File is deleted");
            }else {
                System.out.println("File is not deleted");
            }
        }catch(Exception e) {
            System.out.println(e);
        }
    }
}

文件被删除

示例:删除目录

我们也可以使用delete()方法删除一个目录。确保指定的目录路径表示一个空目录,如果删除失败,它将向调用者函数返回 false。

import java.io.File;
public class Main {

    public static void main(String[] args){
        try {
            File file = new File("path/to/directory/Trash");
            boolean delete = file.delete();
            if(delete) {
                System.out.println("Directory is deleted");
            }else {
                System.out.println("Directory is not deleted");
            }
        }catch(Exception e) {
            System.out.println(e);
        }
    }
}

目录被删除

示例:deleteOnExit()方法

还有另一种方法deleteOnExit(),用于在虚拟机终止时删除文件或目录。这意味着它会在程序实例终止时删除。

应该谨慎使用此方法,因为一旦请求删除,就不可能取消请求。它不返回值意味着将 void 返回给被调用的函数。

import java.io.File;
public class Main {

    public static void main(String[] args){
        try {
            File file = new File("abc.txt");
            // Delete file while exit
            file.deleteOnExit();
        }catch(Exception e) {
            System.out.println(e);
        }
    }
}