Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
你可以删除文件,目录或链接。对于符号链接,链接将被删除,而不是链接的目标。对于目录,目录必须为空,否则删除失败。
Files 类提供了两种删除方法。
delete(Path) 方法将删除该文件,或者如果删除失败抛出异常。例如,如果文件不存在,则抛出 NoSuchFileException。你可以捕获异常以确定删除失败的原因,如下所示:
try {
Files.delete(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) {
// File permission problems are caught here.
System.err.println(x);
}
deleteIfExists(Path) 方法也会删除该文件,但如果该文件不存在,则不会抛出任何异常。如果有多个线程删除文件并且你不想仅因为一个线程首先执行此操作而导致异常,则静默失败非常有用。