如何使用 Java 刪除資料夾和子資料夾?


Java.io 包的 File 類表示系統中的檔案或目錄(路徑名)。此類提供各種方法來對檔案或目錄執行各種操作。

File 類中的 delete() 方法刪除當前 File 物件表示的檔案或目錄。

File 類中的這個 ListFiles() 方法返回一個數組,其中包含當前(File)物件表示路徑中的所有檔案(和目錄)的物件(抽象路徑)。

因此,若要連同其中的子目錄和檔案一起刪除某個資料夾,你需要定義一個迴圈方法。

示例

以下 Java 程式以迴圈的方式刪除指定的目錄 −

import java.io.File;
public class DeletingFilesRecursively {
   static void deleteFolder(File file){
      for (File subFile : file.listFiles()) {
         if(subFile.isDirectory()) {
            deleteFolder(subFile);
         } else {
            subFile.delete();
         }
      }
      file.delete();
   }
   public static void main(String args[]) {
      String filePath = "E://ExampleDirectory//";
      //Creating the File object
      File file = new File(filePath);
      deleteFolder(file);
      System.out.println("Files deleted........");
   }
}

輸出

Files deleted........

使用 ApacheCommonsIO

ApacheCommonsIOdeleteDirectory() 方法接受一個檔案路徑並將其遞迴刪除。

Maven 依賴關係

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>

示例

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
public class DeletingFilesRecursively2 {
   public static void main(String args[]) throws IOException {
      String filePath = "E://ExampleDirectory//";
      //Creating the File object
      File file = new File(filePath);
      FileUtils.deleteDirectory(file);
      System.out.println("Files deleted........");
   }
}

輸出

Files deleted........

更新於:2019-08-02

3 千次+ 瀏覽

開啟您的職業生涯

完成課程以獲得認證

開始學習
廣告