本教程是针对JDK 8编写的。本页中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及其后续版本中更新的语言特性的摘要。
请参阅JDK发行说明,了解有关所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息。
您可以删除文件、目录或链接。对于符号链接,将删除链接而不是链接的目标。对于目录,必须为空目录,否则删除将失败。
Files类提供了两个删除方法。
delete(Path)方法删除文件,如果删除失败,则抛出异常。例如,如果文件不存在,则会抛出NoSuchFileException。您可以捕获异常以确定删除失败的原因,如下所示:
try {
Files.delete(path);
} catch (NoSuchFileException x) {
System.err.format("%s: 无此文件或目录%n", path);
} catch (DirectoryNotEmptyException x) {
System.err.format("%s 不为空%n", path);
} catch (IOException x) {
// 在此处捕获文件权限问题。
System.err.println(x);
}
deleteIfExists(Path)方法也会删除文件,但如果文件不存在,则不会抛出异常。当您有多个线程删除文件并且不希望因为一个线程首先这样做而抛出异常时,静默失败是有用的。