1. 程式人生 > >java檔案刪除不了的坑,特別是壓縮檔案

java檔案刪除不了的坑,特別是壓縮檔案

我們在用java刪除檔案的時候通常直接呼叫file.delete();方法就行了,但是很多情況下卻刪除不了,下面列舉一些情況;

1.是資料夾且不為空,這個沒什麼好說的,可以先刪除資料夾裡的檔案再刪除這個資料夾;

2.被別的程序佔用,這不僅java不能刪,就算windows手動刪也刪不了;

3.跟這個檔案的流沒有關閉,這個是最常見的原因了

然而我遇到的是上傳一個檔案,然後跟這個檔案有關的流也關閉了,還是刪除不了,後來發現有人把這個檔案偷偷的轉換成zip壓縮檔案了。


然後刪除這個bookFile死活刪除不了,如果出現這種情況,這個zipFile最後一定要close;


java.util.zip.ZipFile.close()

方法關閉ZIP檔案。 關閉此ZIP檔案將關閉以前由呼叫getInputStream()方法返回的所有輸入流。這個方法連流都給我們關閉了!就不用我們手動關閉zip檔案的流了,最後在呼叫file.delete()方法就可以刪除檔案了