大致思路就是使用File.list()来获取所要遍历的文件夹的子文件名,然后通过递归实现子文件夹的遍历,最终达到遍历整个文件夹的目的,并在遍历过程中通过获得的文件名后缀来判断文件类型。但是因为递归,在时间复杂度上会很捉急就是了…
代码很简单
package fileTest;
import java.io.File;
public class FileSearch {
public static void main(String[] args) {
// TODO Auto-generated method stub
FileSearch fileSearch=new FileSearch();
fileSearch.ReadFile("D:\\pic");
}
public void ReadFile(String filePath){
File file=new File(filePath);
if(!file.isDirectory()){
//file不是文件夹
System.out.println(file.getName()+" is not a folder");
}else{
traversalFile(filePath,"-");
}
}
public void traversalFile(String filePath,String str){
File file=new File(filePath);
String[] fileList =file.list();
System.out.println(str+file.getName());
for(String fileName:fileList){
String chileFilePath=filePath+"\\"+fileName;
File chilefile=new File(chileFilePath);
if(chilefile.isDirectory()){
traversalFile(chileFilePath,str+"-");
}else{
System.out.println(str+"-"+fileName+" "+checkPNG(fileName));
}
}
}
public Boolean checkPNG(String fileName){
//“.”和“|”都是转义字符,必须得加"\\"
String[] str=fileName.split("\\.");
String suffix=str[1];
if("png".equals(suffix)){
return true;
}else{
return false;
}
}
//.......
}