我们在用java删除文件的时候通常直接调用file.delete();方法就行了,但是很多情况下却删除不了,下面列举一些情况;
1.是文件夹且不为空,这个没什么好说的,可以先删除文件夹里的文件再删除这个文件夹;
2.被别的进程占用,这不仅java不能删,就算windows手动删也删不了;
3.跟这个文件的流没有关闭,这个是最常见的原因了
然而我遇到的是上传一个文件,然后跟这个文件有关的流也关闭了,还是删除不了,后来发现有人把这个文件偷偷的转换成zip压缩文件了。
然后删除这个bookFile死活删除不了,如果出现这种情况,这个zipFile最后一定要close;
java.util.zip.ZipFile.close()
方法关闭ZIP文件。 关闭此ZIP文件将关闭以前由调用getInputStream()
方法返回的所有输入流。这个方法连流都给我们关闭了!就不用我们手动关闭zip文件的流了,最后在调用file.delete()方法就可以删除文件了