내가 the documentation and examples어떻게 JDK7
에서 나는
Files.walkFileTree(startingDir, finder);
예와 함께 작동하도록 같은 "glob:*.dat"
으로 globs의를 얻을 수 있습니다 시작 JDK7의 새로운 대체 (globbing) 기능을 사용하기 위해 노력 해왔다에 글 로빙 디렉토리를 사용합니까 그러나 나는 "**"
구문을 작동시키지 못했습니다. 나는 다음과 같은 것을 만들 수 있기를 바란다 :
matcher = FileSystems.getDefault().getPathMatcher("glob:" + "foo/**/bar/*.dat");
그리고 간단한 예제에 감사 할 것이다. Windows 7을 사용하고 있습니다.
업데이트 : @Oleg 및 @JBNizet은 "/"구문이 OS 독립적이라는 것을 분명히합니다. Javadocs는 OS 의존 문법도 가능하다는 것을 시사 유의
STILL과제를 (필요한?) 는 @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<Path>() {
@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
public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
return FileVisitResult.CONTINUE;
}
});
}
을이 같은 출력을 제공한다 :
try>> d:\petermr-workspace\jumbo-converters\jumbo-converters-cli\src\test\resources\examples\cdx\r19.cdx
try>> d:\petermr-workspace\jumbo-converters\jumbo-converters-cli\src\test\resources\examples\cdx\r19.cdxml
try>> d:\petermr-workspace\jumbo-converters\jumbo-converters-cli\src\test\resources\examples\cdx\r19.cml
try>> d:\petermr-workspace\jumbo-converters\jumbo-converters-cli\src\test\resources\examples\cdx\r19.ref.cdxml
try>> d:\petermr-workspace\jumbo-converters\jumbo-converters-cli\src\test\resources\examples\cdx\r19.ref.cml
try>> d:\petermr-workspace\jumbo-converters\jumbo-converters-cli\src\test\resources\examples\cif\aa2004.cml
하지만 여기
'/'그것이 문제라면 모든 Windows 시스템에서 정상적으로 작동합니다. –
@Oleg thanks. 그래서 일부 논리가 잘못되었거나 메소드가 다른 기능을 가지고 있다고 가정합니다. File.separator 따라서 잘못 되었습니까? [나는 공식 문서가 다소 추상적 임] –
"glob : **/*. cml"을 시도 했습니까? –