Java 刪除文件及文件夾刪除不了的解決
Java 刪除文件及文件夾刪除不了
問(wèn)題所在
今天在編寫(xiě)一個(gè)項(xiàng)目,流程是先創(chuàng)建一個(gè)臨時(shí)文件夾存放生成的文件,再經(jīng)過(guò)壓縮導(dǎo)出,待導(dǎo)出成功后刪除臨時(shí)文件夾,但是怎么也刪除不了,還以為是寫(xiě)的刪除方法有問(wèn)題,找來(lái)找去,試了很多方法也刪除不了
本來(lái)以為是打包的流沒(méi)關(guān)閉,但是發(fā)現(xiàn)流都是關(guān)閉的,后來(lái)發(fā)現(xiàn),是在生成的方法里,直接new FileWriter出來(lái)的,沒(méi)有關(guān)閉,在這里提醒一下,關(guān)于操作文件或者文件夾一定都會(huì)用到流,所以用到的流一定要檢查一遍是否用完關(guān)閉了。
java文件刪除不了的坑,特別是壓縮文件
我們?cè)谟胘ava刪除文件的時(shí)候通常直接調(diào)用file.delete();方法就行了,但是很多情況下卻刪除不了,
下面列舉一些情況
- 1.是文件夾且不為空,這個(gè)沒(méi)什么好說(shuō)的,可以先刪除文件夾里的文件再刪除這個(gè)文件夾;
- 2.被別的進(jìn)程占用,這不僅java不能刪,就算windows手動(dòng)刪也刪不了;
- 3.跟這個(gè)文件的流沒(méi)有關(guān)閉,這個(gè)是最常見(jiàn)的原因了
然而我遇到的是上傳一個(gè)文件,然后跟這個(gè)文件有關(guān)的流也關(guān)閉了,還是刪除不了,后來(lái)發(fā)現(xiàn)有人把這個(gè)文件偷偷的轉(zhuǎn)換成zip壓縮文件了。
然后刪除這個(gè)bookFile死活刪除不了,如果出現(xiàn)這種情況,這個(gè)zipFile最后一定要close;
java.util.zip.ZipFile.close()方法關(guān)閉ZIP文件
關(guān)閉此ZIP文件將關(guān)閉以前由調(diào)用getInputStream()方法返回的所有輸入流。這個(gè)方法連流都給我們關(guān)閉了!就不用我們手動(dòng)關(guān)閉zip文件的流了,最后在調(diào)用file.delete()方法就可以刪除文件了
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot項(xiàng)目URL訪問(wèn)異常的問(wèn)題處理
這篇文章主要介紹了SpringBoot項(xiàng)目URL訪問(wèn)異常的問(wèn)題處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07解決java項(xiàng)目jar打包后讀取文件失敗的問(wèn)題
這篇文章主要介紹了解決java項(xiàng)目jar打包后讀取文件失敗的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06SpringBoot中GlobalExceptionHandler異常處理機(jī)制詳細(xì)說(shuō)明
Spring Boot的GlobalExceptionHandler是一個(gè)全局異常處理器,用于捕獲和處理應(yīng)用程序中發(fā)生的所有異常,這篇文章主要給大家介紹了關(guān)于Java中GlobalExceptionHandler異常處理機(jī)制的相關(guān)資料,需要的朋友可以參考下2024-03-03java7 簡(jiǎn)化變參方法調(diào)用實(shí)例方法
在本篇文章里我們給大家整理的是關(guān)于java7 簡(jiǎn)化變參方法調(diào)用實(shí)例方法以及實(shí)例代碼,需要的朋友們學(xué)習(xí)下。2019-11-11Kotlin傳遞可變長(zhǎng)參數(shù)給Java可變參數(shù)實(shí)例代碼
這篇文章主要介紹了Kotlin傳遞可變長(zhǎng)參數(shù)給Java可變參數(shù)實(shí)例代碼,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01SpringBoot實(shí)現(xiàn)本地文件存儲(chǔ)及預(yù)覽過(guò)程
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)本地文件存儲(chǔ)及預(yù)覽過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11eclipse/IDEA配置javafx項(xiàng)目步驟(圖文教程)
這篇文章主要介紹了eclipse/IDEA配置javafx項(xiàng)目步驟(圖文教程),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Java Lambda表達(dá)式原理及多線(xiàn)程實(shí)現(xiàn)
這篇文章主要介紹了Java Lambda表達(dá)式原理及多線(xiàn)程實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07淺談synchronized方法對(duì)非synchronized方法的影響
下面小編就為大家?guī)?lái)一篇淺談synchronized方法對(duì)非synchronized方法的影響。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10