Java之递归展示文件目录结构

本文介绍了一个使用Java编写的递归函数,该函数能够遍历指定路径下的所有子目录,并展示每个文件及文件夹的层级结构。通过递归方式逐层深入,程序能够清晰地列出文件系统的树形结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过递归函数,展示某个文件下目录结构

public class DirectorList {
	private static Scanner sc;

	public static void main(String[] args) {
		String route = getRoute();
		File file = new File(normRoute(route));
		System.out.println(file.getName());
		showFile(file, 1);
	}
	
	/*
	 * 利用递归遍历所有子目录,levels记录文件夹的层数(控制空格长度,模拟分层效果 )
	 */
	public static void showFile(File files,int levels){
		//获取所有的文件列表
		File[] arrFiles = files.listFiles();
		String str = "";
		//每向下延伸一层,文件前增加一层
		for (int i = 0; i < levels; i++) {
			str += "    ";
		}
		//增强for遍历文件数组
		for (File childFile : arrFiles) {
			System.out.println(str + childFile.getName());
			//如果file是目录,递归调用
			if(childFile.isDirectory())
				showFile(childFile, levels + 1);	
		}
	}
	
	//获取用户输入文件路径
	public static String getRoute(){
		sc = new Scanner(System.in);
		System.out.println("请输入文件的绝对路径:");
		String route = sc.next();
		return route;
	}
	
	//对用户输入的文件路径进行分割重新组装
	public static String normRoute(String str){
		//定义分割符\
		String strSplit = "\\\\";
		String normalSplit = "";
		String[] arrRoute = str.split(strSplit);
		for (String sonRoute : arrRoute) {
			normalSplit  = normalSplit + sonRoute + "\\\\";
		}
		return normalSplit;
	}
}

console:
请输入文件的绝对路径:
D:\foxmail\Global
Global
    7_1.ver
    Address
        3.0
            1
                AddrFolderTreeStg.hea
                AddrFolderTreeStg.htb
                AddrFolderTreeStg.rec0
                AddrNoteIdToEmails
                AddrNoteIdToMainEmailId
                Indexes
                    hitCount.ind
            AddressOption
        Images
            contact.png
    alarm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值