Java中通过File类方法删除指定文件夹下的全部文件

Java中通过File类方法删除指定文件夹下的全部文件

    对delete的解说 那么问题来了!!! (②中的问题,怎么删除文件夹里所有文件,想必很多同学也和我一样懵,) 别着急(往下看) 要用到的方法

(递归思想) 如果文件夹里面还有文件夹,就继续往下找(可能不太官方,个人理解)

接下来 代码展示 方法一:

package com.study;

import java.io.File;
import java.io.IOException;
/**
 1. 应用场景
 2.     delete删除只能删除空文件夹 和文件
 3.     删除指定文件夹
 */
public class Test1 {
          
   
    public static void main(String[] args) throws IOException {
          
   
        File f = new File("D://B");
        deleteFile(f);//删除完后并没有删除根目录
        f.delete();//删除根目录
        if (!f.exists()){
          
   
            //控制台打印
            System.out.println("删除成功");
        }
    }
    private static void deleteFile(File file) throws IOException {
          
   
        /**
         *  File[] listFiles() 
         *    返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 
         */
        File[] files = file.listFiles();
        if (files!=null){
          
   //如果包含文件进行删除操作
            for (int i = 0; i <files.length ; i++) {
          
   
                if (files[i].isFile()){
          
   
                    //删除子文件
                    files[i].delete();
                }else if (files[i].isDirectory()){
          
   
                    //通过递归的方法找到子目录的文件
                    deleteFile(files[i]);
                }
                files[i].delete();//删除子目录
            }
        }
    }
}

方法二: 和上面一样,把上面if代码块里的替换即可

if (files!=null){//如果包含文件进行删除操作
            for (File f:files) {
                //判断遍历出的文件是不是文件
                if (f.isFile()){
                    //如果是则直接删除
                    f.delete();
                }else if (f.isDirectory()){//通过递归的方法找到文件夹里的文件
                    deleteFile(f);
                }
                f.delete();//删除子目录
            }
         }

思路

通过File类删除文件夹全部内容:

  1. 只有当目录中全部文件删除掉之后才能删除目录
  2. 通过递归方式进入子目录
  3. 最后删除根目录
经验分享 程序员 微信小程序 职场和发展