zoukankan      html  css  js  c++  java
  • 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这个文件夹也没有了

                }

            }

        }

    }

  • 相关阅读:
    python分析文本文件/json
    python中文件操作
    python异常处理
    socket网络模块
    层模型--固定定位
    层模型--相对定位
    层模型--绝对定位
    什么是层模型?
    浮动模型
    流动模型/a标签换行问题
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11136199.html
Copyright © 2011-2022 走看看