Tag: glob

Java Path中的星号

我正在阅读OCA / OCP Java SE和程序员I和II学习指南。 在页52​​0上有一个用于匹配的方法: public void matches(Path path, String glob){ PathMatcher matcher = FileSystems.getDefault().getPathMatcher(glob); System.out.println(matcher.matches(path)); } 现在,在下一页上有一段代码使用了这个方法: public static void main(String [] args){ Path path1= Paths.get(“0*b/test/1”); Path path2 = Paths.get(“9\\*b/test/1”); Path path3 = Paths.get(“01b/test/1”); Path path4 = Paths.get(“0*b/1”); String glob = “glob:[0-9]\\*{A*,b}/**/1”; matches(path1,glob); matches(path2,glob); matches(path3,glob); matches(path4,glob); } 根据这本书的结果应该是:真假虚假 但是,当我尝试运行它时,我得到以下exception: Exception in thread “main” […]

如何在JDK7中使用目录通配符

我一直在尝试使用JDK7中的新globbingfunction,从文档和示例开始 我可以使用诸如”glob:*.dat”这样的”glob:*.dat”来处理 Files.walkFileTree(startingDir, finder); 例子,但我无法使”**”语法工作。 我希望能够创建类似的东西: matcher = FileSystems.getDefault().getPathMatcher(“glob:” + “foo/**/bar/*.dat”); 并希望得到一个简单的例子。 我使用的是Windows 7。 更新:@Oleg和@JBNizet清楚地表明“/”语法与操作系统无关。 请注意, Javadocs建议也可以使用依赖于操作系统的语法(需要) 仍有问题:已采取@Nizet并编辑如下: @Test public void testStackoverflowGlobber() throws IOException { final PathMatcher matcher = FileSystems.getDefault().getPathMatcher(“glob:*.cml”); Files.walkFileTree(Paths.get(“d:/petermr-workspace/jumbo-converters/jumbo-converters-cli/src/test/resources”), new SimpleFileVisitor() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { System.out.println(“try>> “+file); if (matcher.matches(file)) { System.out.println(“MATCHES>>”+file); } return FileVisitResult.CONTINUE; } @Override […]