递归扫描文件夹的所有.txt结尾的文件
主要参考:javaSE官方文档
主要使用:Files这个工具类
-
- public static void main(String[] args) {
- String userDir = System.getProperty("user.dir");
- Path sourcePath = Paths.get(userDir);
- // 开启递归扫描文件
- String findFileRegex = "*.txt";
- try {
- Files.walkFileTree(sourcePath, new SimpleFileVisitor
() { - @Override
- public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
- try (DirectoryStream
newDirectoryStream = Files.newDirectoryStream(dir, findFileRegex)) { - newDirectoryStream.forEach(x -> {
- // 这里为显示文件的方法
- System.out.println(x.toString());
- });
- }
- return FileVisitResult.CONTINUE;
- }
- });
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
之前的获取文件夹下所有文件的方法:
- File file=new File("E:\\home\\tomcat\\apache-tomcat-8.5.32-ms\\webapps\\broadcast\\1_1660201511780.aacdir");
- File[] files=file.listFiles();
- for (int i = 0; i < files.length; i++) {
- byte[] bytes= Files.readAllBytes(files[i].toPath());
- String result = new String(bytes, "utf-8");
- // System.out.println("result===="+result);
- System.out.println(files[i].getName());
- }