【发布时间】:2020-11-27 12:33:54
【问题描述】:
在单元测试中,我在临时文件夹中创建了一个文件,测试后我想删除它们。
@After
public void destroy() throws IOException {
if (!new File(tempFile.toAbsolutePath().getParent().toString() + "\\file1.tmp").delete()) {
System.out.println("file1.tmp not deleted");
}
if (!new File(tempFile.toAbsolutePath().getParent().toString() + "\\file2.log").delete()) {
System.out.println("file2.log not deleted");
}
if (!new File(tempFile.toAbsolutePath().getParent().toString() + "\\file3.log").delete()) {
System.out.println("file3.log not deleted");
}
if (!new File(tempFile.toAbsolutePath().getParent().toString() + "\\file4.log").delete()) {
System.out.println("file4.log not deleted");
}
}
它可以毫无问题地删除文件 1-3,但我没有删除文件 4。 通常 File.delete 应该抛出一个 IOException 但它只是返回 false。
我对每个文件都使用了相同的方法,创建和写入文件后关闭writer。
希望我没有忘记任何信息
【问题讨论】:
-
File.delete()不会抛出IOExceptions。删除失败时返回false。如果您想要一个可能为您提供原因指示的异常,您可以使用java.nio.Files类中的delete()方法。 -
是什么让您认为它应该抛出 IOException? docs 没有提到这一点。
-
现在的问题是什么?为什么它不抛出或为什么文件没有被删除?
-
@fredrik 我读错了“注意”部分。我认为这意味着,像我使用的 delete 方法会引发 IOException。
-
@Henry 我想知道为什么它没有抛出任何东西,抱歉没有直接写这个^^"
标签: java java-io filewriter