我在这里看到类似的问题File.delete()
没有按预期工作,但是这与Java实际创建文件的方式略有不同,但在完成后不会删除它。
File genFile = new File(parsed);
... sends file data across socket ...
genFile.delete();
生成的文件(genFile
)是在程序的早期生成并写入的,但是当我尝试删除它时,该文件只保留在目录中 - 没有错误消息等。任何关于什么可能的想法发生了什么?
答案 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)。