zoukankan      html  css  js  c++  java
  • java递归删除目录及子文件

    学到java的递归,难免会又学这个删除文件的程序。

     1 package com.mcz.io;
     2 
     3 import java.io.File;
     4 
     5 public class RecursionTest {
     6     public static boolean  deleteAll(File file){
     7         if(file.isFile()|| file.list().length == 0){
     8             file.delete();
     9         }else {
    10             File[] files = file.listFiles();
    11             for (File f : files) {
    12                 deleteAll(f);
    13                 f.delete();    
    14             }
    15         }
    16         return true;
    17     }
    18     public static void main(String[] args) {
    19         boolean a = deleteAll( new File("d:\abc"));
    20                                      file.delete();
    21         System.out.println(a);
    22     }
    23 }

    我们要搞清楚,delete方法要求我们删除的目录里面要为空才可以被删除,了解之后我们就要想

    分析一下:

    一个递归算法的出口是最重要的,那么我们删除文件,就是首先传入的是一个File类型的对象,

    判断它是否一个文件或它是否一个空目录

    if(file.isFile()|| file.list().length == 0)

    因为我们用的是“||”所以与短路情况,,如果第一个为真,那么第二个就不执行了。那么我们直接删掉就可以;

    如果不是的话,我们就要执行后面递归,

    file里面有东西,所以我们要获取file里面的东西,再遍历它,

    删除里面的所有东西。

    File[] files = file.listFiles();
       for (File f : files) {
        deleteAll(f);
        f.delete(); 

    递归算法最重要的是deleteAll方法里面的东西,只要自己想清楚了,就会觉得容易了。

  • 相关阅读:
    linux上的工具或软件
    百度分享插件怎么取消鼠标放在图片上出现的分享条
    常用的Lambda表达式
    IDEA安装使用Lombok插件
    Spring cloud Eureka错误锦集(二)
    Spring cloud Eureka错误锦集(一)
    Navicat破解
    手动添加jar包到本地仓库
    Markdown常用语法
    Java中的位运算符
  • 原文地址:https://www.cnblogs.com/mczha/p/3209972.html
Copyright © 2011-2022 走看看