用于搜索目录中的目录,文件的Glob模式

时间:2016-01-08 09:38:35

标签: java

我正在使用glob模式以递归方式遍历目录并获取该目录中的所有文件和目录。

我有一个目录:d:/ test / newfolder / ... 在newfolder中有一些文件和一些内部包含一些文件的目录。 例如:d:/test/newfolder/new.txt,d:/test/newfolder/temp/tempfile.doc等..

我正在使用Path Mathcher来匹配globpatterns。

这是我的代码:

PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:" + pattern);
    try {
        Files.walkFileTree(startDir, new SimpleFileVisitor<Path>() {
            @Override
            public FileVisitResult preVisitDirectory(Path dir,BasicFileAttributes attrs) throws IOException {
                if (matcher.matches(file.getFileName())) {
                    System.out.println("found files&directories: " + file.getFileName());
                    return FileVisitResult.CONTINUE;
                }

                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    if (matcher.matches(file.getFileName())) {
                        System.out.println("found files: " + file.getFileName());
                    }
                    return FileVisitResult.CONTINUE;
                }
            });
        } catch (IOException e) {
            e.printStackTrace();
        }     

如果我想搜索文件,我可以给出模式glob:* .txt,它可以正常工作。

但我不知道应该给搜索目录的模式。我想获取“newfolder”目录中的所有文件和目录。

我正在尝试使用glob:newfolder / **,但这对我不起作用。

代码有什么问题吗?

请帮帮我。 在此先感谢

0 个答案:

没有答案