public BundleWalker(Callback cb, String[] patterns) { if (patterns != null) { this.patterns = new FileNamePattern[patterns.length]; for (int i = 0; i < patterns.length; i++) { this.patterns[i] = new FileNamePattern(patterns[i]); } } callback = cb; }
public FilePathPattern(Path path) { String[] segments = path.segments(); patterns = new FileNamePattern[segments.length]; for (int i = 0; i < segments.length; i++) { String segment = segments[i]; if (segment.equals("**")) { patterns[i] = null; // match any segments } else { patterns[i] = new FileNamePattern(segment); } } }
public static File[] findFiles(File root, String pattern, boolean recurse) { List<File> result = new ArrayList<>(); if (pattern == null) { if (recurse) { collectFiles(root, result); } else { return root.listFiles(); } } else { FileNamePattern pat = new FileNamePattern(pattern); if (recurse) { collectFiles(root, pat, result); } else { File[] files = root.listFiles(); for (File file : files) { if (pat.match(file.getName())) { result.add(file); } } } } return result.toArray(new File[result.size()]); }