2016-05-23 18 views
1

を返しませんC:\ User \ user_idの下のすべての "somefile.xml"とそれ以下のすべてのサブディレクトリへのパスを表示します。それでも、hasNext()メソッドは毎回falseを返します。DirectoryStreamは、任意のパス

答えて

2

DirectoryStreamは、指定したディレクトリを繰り返し、そのディレクトリのエントリと一致します。 ではなく、のサブディレクトリを検索します。

すべてのディレクトリを調べるには、walkXXXXメソッドのいずれかをFilesにする必要があります。たとえば、

try (Stream<Path> stream = Files.walk(dataDir.toPath())) { 
    stream.filter(pathMatcher::matches) 
     .forEach(path -> System.out.println(path.toString())); 
} 
+0

ちょっと違う(ここではJava 7に限る)が、私の問題を解決しました。ありがとう! – mister270