Java - 列出文件夹中的文件(使用递归)

列出文件夹中的文件

使用 tree 命令查看我将要列出的文件夹中的文件:

PS D:\F\CAM> tree /a /f
文件夹 PATH 列表
卷序列号为 8C71-860C
D:.
\---note
    +---CAM350 - 导入光绘(GERBER)文件
    |       CAM350 - 导入光绘(GERBER)文件.md
    |       image-20210418133707404.png
    |       image-20210418133829443.png
    |       image-20210418134053797.png
    |       image-20210418134504131.png
    |       image-20210418134658919.png
    |
    \---CAM350 - 导出 DXF 文件
            CAM350 - 导出 DXF 文件.md
            image-20210410164603863.png
            image-20210410164625152.png
            image-20210410164756490.png
            image-20210410164936800.png
            image-20210410165257811.png
            image-20210410165536242.png
            image-20210410170128753.png
            image-20210410170251516.png

Java 代码:

import java.io.File;

public class Main {

    public static void main(String[] args) {
        listFiles(new File("D:\\F\\CAM"), 0);
    }
    
    public static void listFiles(File file, int depth) {
        if ((file == null) || !file.exists()) {
            System.out.println("File does not exist!");
            return;
        }
        
        StringBuilder indentation = new StringBuilder(4 * depth);
        String whitespace = " ";
        for (int i = 0; i < (4 * depth); ++i) {
            indentation.append(whitespace);
        }
        
        if (file.isDirectory()) { // 文件夹
            System.out.println(indentation + file.getName() + ": {");
            File[] files = file.listFiles(); // 列出所有文件或文件夹
            for (File f : files) {
                listFiles(f, (depth + 1)); // 递归调用自己
            }
            System.out.println(indentation + "}");
        } else { // 文件
            System.out.println(indentation + file.getName());
        }
    }
}

运行程序,控制台输出:

CAM: {
    note: {
        CAM350 - 导入光绘(GERBER)文件: {
            CAM350 - 导入光绘(GERBER)文件.md
            image-20210418133707404.png
            image-20210418133829443.png
            image-20210418134053797.png
            image-20210418134504131.png
            image-20210418134658919.png
        }
        CAM350 - 导出 DXF 文件: {
            CAM350 - 导出 DXF 文件.md
            image-20210410164603863.png
            image-20210410164625152.png
            image-20210410164756490.png
            image-20210410164936800.png
            image-20210410165257811.png
            image-20210410165536242.png
            image-20210410170128753.png
            image-20210410170251516.png
        }
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值