如何使用 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 千次+ 浏览

开启您的职业生涯

完成课程以获得认证

开始学习
广告
© . All rights reserved.