删除文件或目录

您可以删除文件,目录或链接。使用符号链接时,链接将被删除,而不是链接的目标。对于目录,目录必须为空,否则删除失败。

Files类提供了两种删除方法。

delete(Path)方法删除文件,或者如果删除失败,则引发异常。例如,如果文件不存在,则抛出NoSuchFileException。您可以catch异常以确定删除失败的原因,如下所示:

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)方法也会删除该文件,但是如果该文件不存在,则不会引发任何异常。当您有多个线程删除文件并且不想仅因为一个线程先这样做而引发异常时,静默失败很有用。