मैं से the documentation and examplesमैं कैसे JDK7
मैं
Files.walkFileTree(startingDir, finder);
उदाहरण के साथ काम करने के लिए इस तरह के रूप में "glob:*.dat"
globs प्राप्त कर सकते हैं शुरू करने, JDK7 में नए ग्लोबिंग सुविधा का उपयोग करने की कोशिश कर रहा है में ग्लोबिंग निर्देशिका का उपयोग करना लेकिन मैं "**"
सिंटैक्स काम करने में असमर्थ रहा हूं। मैं कुछ ऐसा बनाने में सक्षम होना चाहूंगा:
matcher = FileSystems.getDefault().getPathMatcher("glob:" + "foo/**/bar/*.dat");
और एक साधारण उदाहरण के लिए आभारी होंगे। मैं विंडोज 7 का उपयोग कर रहा हूं।
अद्यतन: @ ओलेग और @ जेबीनिज़ेट यह स्पष्ट करते हैं कि "/" वाक्यविन्यास ओएस-स्वतंत्र है। नोट 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<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
लेकिन
'/' किसी भी विंडोज सिस्टम पर ठीक काम करेगा अगर यह आपकी चिंता –
@ ओलेग धन्यवाद है। इसलिए मुझे कुछ तर्क गलत है या माना जाता है कि विधियों की अलग-अलग कार्यक्षमता है। फाइल.सेपरेटर इसलिए गलत है? [मुझे आधिकारिक दस्तावेज बल्कि स्केची मिलते हैं] –
क्या आपने "ग्लोब: **/*। सीएमएल" की कोशिश की है? –