• java 递归(Recursion)


    现在要求输出一个给定目录中的全部文件的路径。

    本程序肯定只能依靠递归的操作完成,因为在一个给定的路径下有可能还是文件夹,那么如果是文件夹的话则肯定要继续列出,重复判断。

    递归:程序调用自身的编程技巧

    递归就是在方法里调用自身;

    在使用递归时,必须有一个明确的递归结束条件,称为递归出口。

    练习:列出文件夹下所有文件(包含子文件夹内)

    package july7file;

    //利用递归遍历输出

    import java.io.File;

    public class Demo2 {

        public static void main(String[] args) {

            File f = new File("D:/V5");

            mylist(f);

        }

        public static void mylist(File f) {

            System.out.println(f);// 先输出一下,因为不能确定接受来的文件是否是文件夹!

            if (f.isDirectory()) {

                File[] file = f.listFiles();

                for (File file2 : file) {

                    mylist(file2);

                }

            }

        }

    }

    练习:删除一个目录(注意:要删除目录必须删除目录下的文件和子目录)

    package july7file;

    import java.io.File;

    public class Demo11 {

        public static void main(String[] args) {

           

            File f = new File("D:/V5");

            deleter(f);

           

            System.out.println("删除成功 !");

        }

       

        public static void deleter(File f){//程序简陋,就没有判断空引用!

            if(f.isFile()){

                f.delete();

            }else if(f.isDirectory()){

                File []file = f.listFiles();

                for (File file2 : file) {

                    deleter(file2);//调用自身,递归!

                    file2.delete();//删除子文件夹(内部没有文件的时候可以删除),如果这里写上f.delete();那么V5这个文件夹也没有了

                }

            }

        }

    }

  • 相关阅读:
    获取某年某月有几天
    ps怎么修改gif动图播放速度
    Swing滚动条重写
    Swing自定义JScrollPane的滚动条设置,重写BasicScrollBarUI方法
    你真的了解UIButton、UILabel 吗?
    问题:-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "BlueView" nib but the view outlet was not set.
    李洪强漫谈iOS开发[C语言-043]-练习
    iOS开发基础知识--碎片46
    iOS开发基础知识--碎片45
    iOS开发基础知识--碎片44
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11136199.html
Copyright © 2020-2023  润新知