Java不删除自己创建的文件

时间:2013-03-15 04:55:06

标签: java file

我在这里看到类似的问题File.delete()没有按预期工作,但是这与Java实际创建文件的方式略有不同,但在完成后不会删除它。

File genFile = new File(parsed);
... sends file data across socket ... 
genFile.delete();

生成的文件(genFile)是在程序的早期生成并写入的,但是当我尝试删除它时,该文件只保留在目录中 - 没有错误消息等。任何关于什么可能的想法发生了什么?

4 个答案:

答案 0 :(得分:1)

File.delete()很糟糕,因为它对错误保持沉默。

尝试

java.nio.file.Files.delete(file.toPath());  // throws IOException

它可能会显示无法删除文件的原因。 (或者它可能不会:)。

答案 1 :(得分:0)

在尝试删除()

之前,您需要关闭()文件连接

答案 2 :(得分:0)

添加

genFile.close();

genFile.delete();

当您尝试删除文件时,流不会被刷新,因此请先关闭流并删除该文件。

答案 3 :(得分:0)

如果您在Windows或* Unix下运行,那么这些信息将是相关的。

Windows不会删除任何应用程序打开的文件;在删除之前关闭文件。

Unix变种应该继续并删除文件(释放inode)。