import org.junit.Test; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; public class TestParseJson { @Test public void test() throws IOException { Path startingDir = Paths.get("f:\\temp"); FindFileVisitor filterFilesVisitor= new FindFileVisitor(".wav","\\d+{13}"); Files.walkFileTree(startingDir, filterFilesVisitor); List<Path> files = filterFilesVisitor.getFilenameList(); System.out.println(files); } }
import java.nio.file.FileVisitResult; import java.nio.file.Path; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; import java.util.LinkedList; import java.util.List; class FindFileVisitor extends SimpleFileVisitor<Path> { private List<Path> filenameList = new LinkedList<>(); private String fileSuffix = null; private String pattern = null; public FindFileVisitor(String fileSuffix) { this.fileSuffix = fileSuffix; } public FindFileVisitor(String fileSuffix,String pattern) { this(fileSuffix); this.pattern = pattern; } public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { String absPath = file.toString(); Path fileName = file.getFileName(); if (absPath.endsWith(fileSuffix)) { if(pattern != null) {
//正则表达式+文件后缀名匹配整个文件名
//例如pattern \\d{13} 后缀.wav组成新的表达式 "\\d{13}\\.wav" if(!fileName.toString().matches(pattern + fileSuffix)) { return FileVisitResult.CONTINUE; } } filenameList.add(file.normalize()); } return FileVisitResult.CONTINUE; } public List<Path> getFilenameList() { return filenameList; } }
输出结果
本博客文章绝大多数为原创,少量为转载,代码经过测试验证,如果有疑问直接留言或者私信我。
创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。
创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。