zoukankan      html  css  js  c++  java
  • Java File类应用:递归遍历文件夹和递归删除文件

    要求:
    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);
                }
            }
    
        }
    }
    

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

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

    这里写图片描述

  • 相关阅读:
    Android:UI界面设计基础知识总结(一)
    Test:河北金力集团企业网集成
    Java中的异常处理try catch(第八周课堂示例总结)
    Java第七周课堂示例总结
    初入JavaWeb(半成品)
    Redis详解(4)--redis底层数据结构
    Go语言流程控制05--defer延时执行
    java==IO练习,文件切割合拼工具开发代码
    【洛谷 P3772】[CTSC2017]游戏(矩阵乘法+线段树)
    【LOJ #2865】「IOI2018」狼人(Kruscal重构树+扫描线)
  • 原文地址:https://www.cnblogs.com/TCB-Java/p/6809629.html
Copyright © 2011-2022 走看看