Java:8 - 2查找文件

问题描述:

实现一个程序,该程序的输入是一个目录字符串和一个文件拓展名字符串,程序递归地搜索该目录及其各级子目录,在这些目录中查找所有拓展名与指定拓展名相同的文件,将这些文件的相对路径名记录下来并向控制台输出。

import java.io.File;
import java.util.*;

public class Eighth2 {
	static int k=0;
	public static void main(String[] args) {
		System.out.print("请输入需要读取的目录的绝对路径:");
		Scanner scan=new Scanner(System.in);
		String directory1=scan.next();
		System.out.print("请输入需要记录的文件扩展名:");
		String ext=scan.next();
		String extension="."+ext;
		scan.close();
		List<String> list=new ArrayList<String>();
		File directory=new File(directory1);
		list=search(directory,extension,list);
		if(k==0) System.out.print("在目录 "+directory+" 中查找不到拓展名为 "+ext+" 的文件");
		else {
			System.out.println("在目录 "+directory+" 中拓展名为 "+ext+" 的文件有:");
			for(String s:list) System.out.println(s);
		}
	}
	public static List<String> search(File directory,String extension,List<String> list) {//递归搜索目录及子目录下的指定扩展名文件
		File[] dirs=directory.listFiles();
		if(dirs==null) return list;
		for(File dir:dirs) {
			if(dir.isDirectory()) search(dir,extension,list);
			else {
				if((dir.toString().indexOf(extension))!=-1) {
					list.add(dir.toString());
					k++;
				}
			}
		}
		return list;
	}
}

这估计是最后一个有关Java题目的博客啦
本人Java学得不多也不精,还请多指教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值