java递归删除指定文件夹下所有的文件和文件夹

4次阅读

共计 890 个字符,预计需要花费 3 分钟才能阅读完成。

直接上代码,方便伸手党 ctrl

package com.li.day08;

import java.io.File;
import java.util.Scanner;

/*
 * 删除文件夹及子文件夹所有文件
 */
public class Test10 {public static void main(String[] args) {
        // 用户输入路径
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入路径:");
        // 创建 File 对象接收路径
        File file = new File(scanner.nextLine());
        delete(file);
    }

    public static void delete(File file) {
        // 判断是否存在此文件
        if (file.exists()) {
            // 判断是否是文件夹
            if (file.isDirectory()) {File[] files = file.listFiles();
                // 判断文件夹里是否有文件
                if (files.length >= 1) {
                    // 遍历文件夹里所有子文件
                    for (File file1 : files) {
                        // 是文件,直接删除
                        if (file1.isFile()) {file1.delete();
                            System.out.println("成功删除:" + file1.getAbsolutePath());
                        } else {
                            // 是文件夹,递归
                            delete(file1);
                        }
                    }
                    //file 此时已经是空文件夹
                    file.delete();
                    System.out.println("成功删除:" + file.getAbsolutePath());
                } else {
                    // 是空文件夹,直接删除
                    file.delete();
                    System.out.println("成功删除:" + file.getAbsolutePath());
                }
            } else {
                // 是文件,直接删除
                file.delete();
                System.out.println("成功删除:" + file.getAbsolutePath());
            }
        } else {System.out.println("文件不存在");
        }
    }
}

正文完
 0