Java递归遍历文件夹

好像没有什么可以描述的;
具体在代码中有注释
代码需要 自己优化,wo想象力有限┭┮﹏┭┮

Java递归遍历文件夹:

简单过程:

  1. 输入路径
  2. 判断是否可以递归(文件夹加入递归)
  3. 否则判断后缀
  4. 打印。

wx

看着代码有点乱?,有点长,但你要仔细看过之后就知道,有用的就那几句;主要shi有不少没用的 注释。

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class Main{
	//主函数调用递归
	public static void main(String[] args)throws IOException {
		Scanner sc = new Scanner(System.in);
		try {
			System.out.println("*****请输入需要查找的目录(格式:C:\\Users\\lenovo\\Pictures)********");
			String str =  sc.next();
			System.out.println("******************请输入查找文件的后缀(格式:jpg)*******************");
			String ser =  sc.next();
			Directory_traversal(str, ser);//目标目录
		}finally {
			sc.close();
		}
	}//main
	
	//递归函数
	public static void Directory_traversal(String path, String ser){//path为目录
		File file = new File(path);
		File[] files = file.listFiles();//遍历该目录所有文件和文件夹对象
		
		for(int i = 0; i<files.length;i++){
			String str = files[i].toString();//类型转换String
			//判断files是否为一个目录
			if(files[i].isDirectory()){
				//递归操作,逐一遍历各文件夹内的文件
				Directory_traversal(str, ser);
			}  else {
				//查找 固定 后缀的文件
				if(!files[i].isDirectory() && str.substring((str.lastIndexOf(".")+1)).equals(ser)) {
					//打印
					Show_str(str);
				}//if
			}//if else
		}//for
	}//Directory_traversal
	
	//打印
	public static void Show_str(String str) {
		//截取打印文件名称
		System.out.println(str.substring((str.lastIndexOf("\\")+1)));
	}//show_str
}//Main
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页