溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java刪除文件時總是返回false怎么辦

發(fā)布時間:2021-09-09 17:48:19 來源:億速云 閱讀:156 作者:chen 欄目:開發(fā)技術

這篇文章主要講解了“java刪除文件時總是返回false怎么辦”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“java刪除文件時總是返回false怎么辦”吧!

目錄
  • java刪除文件時總是返回false,刪不掉

    • 我的解決

  • java文件刪除不了的坑,特別是壓縮文件

    • 下面列舉一些情況

    • java.util.zip.ZipFile.close()方法關閉ZIP文件

java刪除文件時總是返回false,刪不掉

今天寫了個簡單的文件刪除的程序:代碼如下:

public static boolean deleteFiles(File[] files){
  boolean flag = false;
  for(File file:files){
   // 路徑為文件且不為空則進行刪除  
      if (file.isFile() && file.exists()) { 
       flag = file.delete();
        System.out.println(flag);
      }
  }
  return flag;
 }

我的文件都是存在的,但是就是經(jīng)常性的刪不了,不知道怎么回事,我單獨測試的時候是可以的,感覺很是奇怪,上網(wǎng)查,人家說是可能的情況有:

  • 1、多線程操作

  • 2、打開的文件流沒有關閉

  • 3、需要垃圾回收下

我的解決

分析下我的情況,我的是單線程的,所以第一種情況不存在,第二種情況我關閉我所有打開的文件流但是還是不行,后來我在程序中加了行System.gc();,結果就真的可以了,一下是修改后的:

public static boolean deleteFiles(File[] files){
  boolean flag = false;
  for(File file:files){
   // 路徑為文件且不為空則進行刪除  
      if (file.isFile() && file.exists()) {  
       System.gc(); //加上確保文件能刪除,不然可能刪不掉
       flag = file.delete();
       System.out.println(flag);
      }
  }
  return flag;
 }

java文件刪除不了的坑,特別是壓縮文件

我們在用java刪除文件的時候通常直接調用file.delete();方法就行了,但是很多情況下卻刪除不了

下面列舉一些情況

  • 1、是文件夾且不為空,這個沒什么好說的,可以先刪除文件夾里的文件再刪除這個文件夾

  • 2、被別的進程占用,這不僅java不能刪,就算windows手動刪也刪不了

  • 3、跟這個文件的流沒有關閉,這個是最常見的原因了

然而我遇到的是上傳一個文件,然后跟這個文件有關的流也關閉了,還是刪除不了,后來發(fā)現(xiàn)有人把這個文件偷偷的轉換成zip壓縮文件了。

java刪除文件時總是返回false怎么辦

然后刪除這個bookFile死活刪除不了,如果出現(xiàn)這種情況,這個zipFile最后一定要close;

java刪除文件時總是返回false怎么辦

java.util.zip.ZipFile.close()方法關閉ZIP文件

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

感謝各位的閱讀,以上就是“java刪除文件時總是返回false怎么辦”的內容了,經(jīng)過本文的學習后,相信大家對java刪除文件時總是返回false怎么辦這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI