📅  最后修改于: 2023-12-03 14:54:06.128000             🧑  作者: Mango
deleteIfExists()
方法是 Java 中 java.nio.file.Path
接口中的一个方法,用于删除指定路径的文件或目录。如果该路径不存在则直接返回 true。
boolean deleteIfExists() throws IOException
该方法不接受任何参数。
true
表示指定的路径对应的文件或目录存在且删除成功。false
表示指定的路径对应的文件或目录不存在,或者存在但删除时发生异常。以下是一个使用 deleteIfExists()
方法删除指定目录及其下的所有文件和子目录的示例代码:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FileDeleteExample {
public static void main(String[] args) {
Path directory = Paths.get("D:/example-directory");
try {
Files.walk(directory)
.sorted((a, b) -> b.compareTo(a))
.forEach(FileDeleteExample::deletePath);
} catch (IOException e) {
e.printStackTrace();
}
}
private static void deletePath(Path path) {
try {
Files.deleteIfExists(path);
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的示例代码中,我们首先定义了一个目录 D:/example-directory
,然后使用 Files.walk()
方法遍历该目录及其子目录的所有文件和子目录,使用 Files.deleteIfExists()
方法删除每个文件和子目录。
需要注意的是,在使用 Files.walk()
方法遍历目录时,我们使用 sorted()
方法根据路径长度进行排序,确保我们先删除子目录再删除父目录,避免遇到无法删除父目录的情况。
deleteIfExists()
方法是 Java 中 java.nio.file.Path
接口的一个方法,用于删除指定路径的文件或目录。在实际使用中,我们可以结合 Files.walk()
方法遍历目录及其子目录,使用 Files.deleteIfExists()
方法删除目录中的所有文件和子目录。