A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 思如涌泉 中级黑马   /  2014-8-26 09:05  /  968 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

列出指定目录下文件或者文件夹,包含子目录中的内容
也就是列出指定目录下的所有内容

因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可
在列出过程中出现的还是目录的话,还可以再次调用本功能,
也就是函数自身调用自身
这种表现形式,或者变成手法,称为递归

递归要注意:
1 限定条件
2要注意递归的次数, 尽量避免内存溢出

import java.io.*;
class FileDemo3
{
        public static void main(String[] args)
        {
                File dir = new File("d:\\javac");
                showDir(dir);

                //toBin(6);
                //int n = getSum(10);
                ////System.out.println("n:"+n);
       
        }

        //分层目录思想见 视频20-08
        public static void showDir(File dir)
        {
                System.out.println(dir);//打印每一次传进的目录
                File[] files = dir.listFiles();//listFile  打印当级目录的当前所有文件
                for (int x=0;x<files.length;x++ )
                {
                        if (files[x].isDirectory())//判断是否为目录
                                showDir(files[x]);//是目录继续对目录遍历
                        else
                                System.out.println(files[x]);                       
                }
       
        }


        public static int getSum(int n)
        {
                if(n==1);
                        return 1;
                return n+getSum(n-1);
        }



        public static void toBin(int num)
        {
                while(num>0)
                {
                        toBin(num/2);//自身调用自身,先执行完调用自身程序,再返回执行语句,反着打印!
                        System.out.println(num%2);
               
                }
       
        }

}

1 个回复

倒序浏览
路过...看看.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马