in src/main/java/org/apache/datasketches/DirectoryWalker.java [64:93]
void buildLists() {
File file = new File(nodePath);
final String[] strFileDirArr = file.list(); // get array of file/dir names in my directory
if (strFileDirArr == null) {
throw new IllegalArgumentException("File is not a valid dir.");
}
final int numFileDirs = strFileDirArr.length;
for (int i = 0; i < numFileDirs; i++) { // scan all file/dirs at this node
final String fileName = nodePath + strFileDirArr[i];
file = new File(fileName);
if (file.isDirectory()) {
if (recurseFlag) {
if (nodeDirList == null) {
nodeDirList = new ArrayList<>();
}
final Node node = new Node(fileName + FS, filePattern, recurseFlag, nodeFileList);
nodeDirList.add(node);
}
} else { // it is a file
if (filePattern != null) {
if (filePattern.matcher(fileName).matches()) {
nodeFileList.add(fileName); // add it if it matches
}
}
else {
nodeFileList.add(fileName); // just add it
}
}
}
}