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);
                }
            }
    
        }
    }
    

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

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

    这里写图片描述

  • 相关阅读:
    条件变量:为什么要与互斥锁配套使用?为什么要使用while来避免虚假唤醒?
    【转】高性能IO之Reactor模式
    LeetCode127:单词接龙
    CF1245F: Daniel and Spring Cleaning
    权值线段树学习笔记
    luogu_4317: 花神的数论题
    luogu_2605: 基站选址
    入门平衡树: Treap
    CF1244C: The Football Season
    luogu_1156: 垃圾陷阱
  • 原文地址:https://www.cnblogs.com/TCB-Java/p/6809629.html
Copyright © 2011-2022 走看看