首页 > 学院 > 开发设计 > 正文

【典型例题】遍历文件夹下面的文件;(递归算法)

2019-11-10 16:49:58
字体:
来源:转载
供稿:网友

        在学习流File类后,我们可以让系统遍历输出文件夹下面的文件,这里要用到递归方法,所谓递归就像是剥洋葱,一层一层剥,先打印第一级文件夹下面的文件,如果还有第二季文件夹,那么继续递归方法,一直到文件夹最末端,即全是纯文件为止;

package A_January;import java.io.File;/** * Created by Administrator on 17-1-18. */public class FileTest3 {    public static void main(String[] args) {        File file=new File("E://☆日韩电影");        getAllFiles(file);    }    //自定义getAllFiles方法:    public static void getAllFiles(File file){//接收的是文件形式;        System.out.PRintln(file.getAbsolutePath());//打印绝对路径;        if (file.isDirectory()) {            //如果file是文件夹,就把file这个文件夹里的所有文件都放到下文的files[]数组中;            File files[]=file.listFiles();//把文件夹里的东西都放到数组里面;            //把files数组中的文件(包含数据文件和文件夹)一个一个遍历给出;            for (File f : files) {                if (f.isFile()){                    System.out.println(f.getName());                }else{                      //否则回到方法再次执行,递归下去;                      //递归就是剥洋葱,一层一层往下剥;                      getAllFiles(f);                     }            }        }    }}

注意:

1.首先要给出遍历文件夹的目录,用File类来创建对象;

2.调用自定义方法getAllFiles();

3.获取绝对路径(getAbsolutePath()不是必须要的,与核心目标无关);

4.在自定义方法中:进行判断,如果是文件夹,就把该第一级文件夹下的文件都放到数组中,然后用递归算法来遍历并输出(输出的是文件名,getName());

(递归方法:循环中,方法不断调用本身,找到不满足条件项(或满足条件项),直到所有文件都达到目标,跳出循环;)这是该程序的核心;

5.更改目录可以遍历不同文件夹下的文件;

程序运行后的结果如下:

而楼主该文件夹下面的文件实际图如下:

                                                               


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表