import org.junit.Test; import java.io.File; import java.util.ArrayList; import java.util.Comparator; import java.util.List; /** * @ClassName T * @Description * @Author 刘志红 * @Date 28/05/2019 **/ public class T { private List<String> list = new ArrayList<>(300); //获取文件夹以及其子文件夹下所有文件的全路径 @Test public void absolutePath() { String path = "D:\liuzhihong\study\批处理"; String regex = ".+\.swf"; File file = new File(path); getFile(file); //按照文件名自然排序得到的全路径 list.stream().filter(x -> x.matches(regex)).sorted(Comparator.comparing(x -> x.substring(x.lastIndexOf("\") + 1, x.lastIndexOf(".")))).forEach(System.out::println); System.out.println("-------------------------------"); System.out.println("-------------------------------"); System.out.println("-------------------------------"); //按照文件名自然排序得到的文件名 list.stream().filter(x -> x.matches(regex)).map(x -> x.substring(x.lastIndexOf("\") + 1, x.lastIndexOf("."))).sorted().forEach(System.out::println); list.clear(); } public void getFile(File file) { if (file != null) { File[] f = file.listFiles(); /*获取子目录下的文件*/ if (f != null) { for (int i = 0; i < f.length; i++) { getFile(f[i]); } } else { String absolutePath = file.getAbsolutePath(); list.add(absolutePath); } } } }