删除文件夹下的所有文件和子文件夹

版权声明:本文为博主原创文章,但是欢迎转载! https://blog.csdn.net/yancola/article/details/75452739

删除文件夹下的所有文件和子文件夹

背景
这道题是我前几天遇到的一道面试题,遗憾当时没做出来,今天看了传智播客风清扬老师的视频,正好讲到了这道题,所以把它写在这分享给大家。

思路
由于delete方法只能删除文件和空目录,当目录不为空时不能使用delete进行删除。所以自然想到用递归的方法进行删除,即:
判断当前File对象是是否是文件夹,不是则删除之,否则对其下的所有文件和子文件夹进行同样的判断,最后删除这个文件夹(此时这个文件夹肯定是空文件夹)。

代码

import java.io.File;

public class FileDeleteDemo {
    public static void main(String[] args) {
        // 封装目录
        File srcFolder = new File("Folder");
        // 递归实现
        deleteFolder(srcFolder);
    }

    private static void deleteFolder(File srcFolder) {
        // TODO Auto-generated method stub
        // 获取该目录下所有文件和文件夹的File数组
        File[] fileArray = srcFolder.listFiles();

        // 如果fileArray数组不为空才能使用增强for
        if (fileArray != null) {
            // 遍历该数组获得每一个File对象
            for (File file : fileArray) {
                // 判断该file对象是否是文件夹
                if (file.isDirectory()) {
                    deleteFolder(file);
                } else {
                    System.out.println(file.getName() + "---" + file.delete());
                }
            }

            System.out
                    .println(srcFolder.getName() + "---" + srcFolder.delete());
        }
    }
}

猜你喜欢

转载自blog.csdn.net/yancola/article/details/75452739