Java File类应用:递归遍历文件夹和递归删除文件

来源:互联网 发布:淘宝的芋圆能吃吗 编辑:程序博客网 时间:2024/04/30 07:37

要求:
1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件
2)采用递归删除文件下的所有文件

注意:

以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在若要删除正文文件夹,可以在递归删除完后,在使用flie.delete()删除整个文件夹
package 递归删除文件夹下的所有文件;import java.io.File;public class Test {    public static void main(String[] args) {        File file=new File("D:\\Homework");        showFile(file);        System.out.println();        removeFile(file);    }    //递归遍历文件夹    public static void showFile(File file){        //判断file是文件还是文件夹,是文件直接输出        if(file.isFile()){            System.out.println("--文件名:"+file);        }else{            System.out.println("【文件夹】:"+file);            //获取当前文件夹下的所有文件,包括文件夹            File[] files=file.listFiles();            //对当前文件夹下的文件进行遍历,此时需用重复上述操作:判断是否为文件,若是,直接输出;若不是,需要再次遍历            //此时就需要递归了            for (File file2 : files) {                showFile(file2);            }        }    }    //递归删除文件夹和所有文件    public static void removeFile(File file){        //判断file是文件还是文件夹,是文件直接删除        if(file.isFile()){            boolean isSuccess=file.delete();            String string=isSuccess?"删除成功":"删除失败";            System.out.println("--文件删除:"+file+"  "+string);        }else{            System.out.println("【文件夹】:"+file);            //获取当前文件夹下的所有文件,包括文件夹            File[] files=file.listFiles();            //遍历文件夹,并调用removeFile()对每个文件判断是文件夹还是文件,在进行删除            for (File file2 : files) {                removeFile(file2);            }        }    }}

有文件时,运行结果(即第一次运行结果):
这里写图片描述

没有文件时运行结果(即在完成删除后,再次运行程序结果):

这里写图片描述

0 0
原创粉丝点击