因为最近需要便利文件夹获取到响应文件的路径,由于懒,是的,因为懒,所以第一想法是百度谷歌现成代码,但是发现几乎所有都是void无返回值操作,所以只能手动,希望为和我一样懒得同学提供方便吧。
过滤器:
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileFilter;
/**
* @Author: Created by Eric
* @Date: 2017/10/25
* @Description: 过滤出所有后缀名为 .dcm的文件
*/
@Component
public class DicomFilter implements FileFilter{
public boolean accept(File pathname) {
//判断获取的是目录,直接返回true
if(pathname.isDirectory())
return true;
return pathname.getName().toLowerCase().endsWith(".dcm");
}
}
遍历:
import java.io.*;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import org.springframework.stereotype.Component;
import scala.util.parsing.combinator.testing.Str;
@Component
public class TraverseFolder {
private List<String> list = new ArrayList<String>();
public List<String> getAllDcm(File dir){
//加入过滤器
File[] fileArr = dir.listFiles(new DicomFilter());
for(File f : fileArr){
//判断是不是文件夹
if(f.isDirectory()){
//递归进入文件夹遍历
getAllDcm(f);
}else{
String s = f.toString();
list.add(s);
//System.out.println(f);
}
}
return list;
}
}