Java?file.delete刪除文件失敗,Windows磁盤出現(xiàn)無法訪問的文件問題
問題描述
上傳文件后,需要刪除臨時的文件,刪除返回的是true,但是磁盤中的文件還是存在,但是不能訪問,提示無法訪問的文件,“訪問被拒絕”或類似的錯誤消息,當(dāng)我嘗試使用資源管理器復(fù)制它們時,它還聲稱我沒有權(quán)限,當(dāng)我用資源管理器檢查其“屬性”時,它顯示了“您無權(quán)查看或編輯此對象的權(quán)限”。
但是當(dāng)我把java程序停止后,文件便消失了。
我猜想是java程序占用了文件,然后調(diào)試查看,是什么程序占用了文件。
查看占用
Windows 查看文件占用的方法
- 1.Windows自帶的方式
- 2.殺毒軟件的功能
1.打開資源監(jiān)視器
打開任務(wù)管理器:切換到性能頁面,選擇底部的打開資源監(jiān)視器。

2.查找進(jìn)程
- 切換到CPU頁面。
- 展開關(guān)聯(lián)的句柄。
- 搜索框中輸入被占用的文件名或文件夾名。
- 等待搜索結(jié)果(有一些耗時)。

- 如果有占用,這里可以看到進(jìn)程,我查看到的是java進(jìn)程暫用,我猜想是文件流沒關(guān)閉,或者是其他的沒關(guān)閉。
解決方案
我的場景是合并文件后,再刪除臨時文件。
原來用的是Files.write();的方法,沒地方去關(guān)閉文件流,后來改成原生的IO流的方式FileOutputStream、FileInputStream自己去關(guān)閉流,這樣文件就沒有占用了。
大家可以自己一步一步調(diào)試,看是哪一步j(luò)ava占用的文件。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java代碼如何實現(xiàn)存取數(shù)據(jù)庫的blob字段
這篇文章主要介紹了java代碼如何實現(xiàn)存取數(shù)據(jù)庫的blob字段問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04
Elasticsearch 映射參數(shù)詳解 fields
這篇文章主要介紹了fields Elasticsearch 映射參數(shù)fields,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringBoot項目改為SpringCloud項目使用nacos作為注冊中心的方法
本文主要介紹了SpringBoot項目改為SpringCloud項目使用nacos作為注冊中心,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
Java開發(fā)學(xué)習(xí) Eclipse項目有紅感嘆號解決之道
這篇文章主要為大家詳細(xì)介紹了完美解決Eclipse項目有紅感嘆號問題的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
java僅用30行代碼就實現(xiàn)了視頻轉(zhuǎn)音頻的批量轉(zhuǎn)換
這篇文章主要介紹了java僅用30行代碼就實現(xiàn)了視頻轉(zhuǎn)音頻的批量轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Java類的序列化版本唯一標(biāo)識符serialVersionUID使用
serialVersionUID是一個類的序列化版本唯一標(biāo)識符,用于確保在反序列化過程中類的實例與序列化文件中的類版本相匹配,它在版本兼容性和安全性方面起著關(guān)鍵作用2025-01-01

