Я искал простой способ использовать синтаксис глобализации и нашел Как использовать глобализацию каталогов в JDK7 , что идеально ... за исключением того, что этот вопрос не касается вопроса эффективности для конкретныхподстановочные знаки в большом дереве каталогов.
Другими словами, если у меня есть компьютер с сотнями тысяч файлов, и я хочу найти глобус со следующим синтаксисом в корне файловой системы (или в c:/
в Windows):
/foo?/bar/baz/**/*.zip
, тогда использование walkFileTree
и FileSystem.getPathMatcher()
не даст мне никакого очевидного способа вернуть SKIP_SUBTREE
какчасть реализации FileVisitor.preVisitDirectory()
, и программа будет без необходимости проверять все файлы по шаблону.
Есть ли способ решить эту проблему? (было бы, если бы PathMatcher
имел метод descendentsMayMatch()
, чтобы проверить, может ли компонент пути потомка соответствовать указанному пути.)