Java?file.delete刪除文件失敗,Windows磁盤出現(xiàn)無法訪問的文件問題
問題描述
上傳文件后,需要?jiǎng)h除臨時(shí)的文件,刪除返回的是true,但是磁盤中的文件還是存在,但是不能訪問,提示無法訪問的文件,“訪問被拒絕”或類似的錯(cuò)誤消息,當(dāng)我嘗試使用資源管理器復(fù)制它們時(shí),它還聲稱我沒有權(quán)限,當(dāng)我用資源管理器檢查其“屬性”時(shí),它顯示了“您無權(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é)果(有一些耗時(shí))。

- 如果有占用,這里可以看到進(jìn)程,我查看到的是java進(jìn)程暫用,我猜想是文件流沒關(guān)閉,或者是其他的沒關(guān)閉。
解決方案
我的場景是合并文件后,再刪除臨時(shí)文件。
原來用的是Files.write();的方法,沒地方去關(guān)閉文件流,后來改成原生的IO流的方式FileOutputStream、FileInputStream自己去關(guān)閉流,這樣文件就沒有占用了。
大家可以自己一步一步調(diào)試,看是哪一步j(luò)ava占用的文件。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringLDAP連接LDAPS證書報(bào)錯(cuò)問題及解決
這篇文章主要介紹了SpringLDAP連接LDAPS證書報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Java14對于NullPointerException的新處理方式示例解析
這篇文章主要為大家介紹了Java14對于NullPointerException的新處理方式示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
Java中BigDecimal的equals方法和compareTo方法的區(qū)別詳析
這篇文章主要給大家介紹了關(guān)于Java中BigDecimal的equals方法和compareTo方法區(qū)別的相關(guān)資料,對于BigDecimal的大小比較,用equals方法的話會不僅會比較值的大小,還會比較兩個(gè)對象的精確度,而compareTo方法則不會比較精確度,只比較數(shù)值的大小,需要的朋友可以參考下2023-11-11
如何解決IDEA中JSP頁面部分出現(xiàn)綠色背景色問題
這篇文章主要介紹了如何解決IDEA中JSP頁面部分出現(xiàn)綠色背景色問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
Shiro 控制并發(fā)登錄人數(shù)限制及登錄踢出的實(shí)現(xiàn)代碼
本文通過shiro實(shí)現(xiàn)一個(gè)賬號只能同時(shí)一個(gè)人使用,本文重點(diǎn)給大家分享Shiro 控制并發(fā)登錄人數(shù)限制及登錄踢出的實(shí)現(xiàn)代碼,需要的朋友參考下吧2017-09-09

