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

本文介绍了一个使用Java File类遍历指定文件夹及其子文件夹中的所有文件的方法,通过递归方式实现,适用于文件管理系统等场景。

        在学习流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.更改目录可以遍历不同文件夹下的文件;


程序运行后的结果如下:


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


                                                               










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陶洲川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值