java 我可以使用glob模式过滤目录吗?

f0ofjuux  于 2022-12-21  发布在  Java
关注(0)|答案(2)|浏览(130)

我有这个例子代码:

String myGlobFilter = /*whatever*/;
DirectoryStream<Path> stream = Files.newDirectoryStream(myPathToLookIn, myGlobFilter);

有没有可能仅仅通过改变myGlobFilter就可以使流包含目录?myGlobFilter看起来会是什么样子?我试过*/,但是它仍然包含文件。

ilmyapht

ilmyapht1#

Glob模式不区分目录和非目录路径。
如果你只想得到目录,你可以使用newDirectoryStreama DirectoryStream.Filter,如下所示:

DirectoryStream<Path> directories = Files.newDirectoryStream(myPathToLookIn, p -> Files.isDirectory(p, LinkOption.NOFOLLOW_LINKS);
m1m5dgzv

m1m5dgzv2#

我怀疑使用globbing模式是否可行,但使用Files.newDirectoryStream()的另一个重载版本(期望DirectoryStream.Filter作为第二个参数)肯定可以做到:

Path myPathToLookIn = // path
DirectoryStream.Filter<Path> filter = Files::isDirectory;
DirectoryStream<Path> stream = Files.newDirectoryStream(myPathToLookIn, filter);

相关问题