java刪除指定文件夾下的文件和目錄


 1 調用方法 
 2 public static void main(String[] args) {
 3     new FileDeleteTest().clearFiles("D:/temp");
 4    }
 5 
 6 //刪除文件和目錄
 7 private void clearFiles(String workspaceRootPath){
 8      File file = new File(workspaceRootPath);
 9      if(file.exists()){
10           deleteFile(file);
11      }
12 }
13 private void deleteFile(File file){
14      if(file.isDirectory()){
15           File[] files = file.listFiles();
16           for(int i=0; i<files.length; i++){
17                deleteFile(files[i]);
18           }
19      }
20      file.delete();
21 }

 

2014.06.14重讀此文檔時發現以前開發時有一個錯誤的寫法,這里寫下來記錄一下

File類有一個方法:deleteOnExit()

最開始我沒注意看的時候以為是deleteOnExists()----刪除文件,假設文件存在。

后來我發現貌似少了個S啊,看了JDK的API發現確實不是上面的那個意思,JDK里是這么說的:

public void deleteOnExit()

在虛擬機終止時,請求刪除此抽象路徑名表示的文件或目錄。 文件(或目錄)將以與注冊相反的順序刪除。調用此方法刪除已注冊為刪除的文件或目錄無效。根據 Java 語言規范中的定義,只有在虛擬機正常終止時,才會嘗試執行刪除操作。 
一旦請求了刪除操作,就無法取消該請求。所以應小心使用此方法。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM