code: public static List<Path> getSubPathList(Path startDirectoryPath,
  			int maxDepth, Predicate<Path> filter) {
  		List<Path> subPathList =
  				Collections.synchronizedList(new ArrayList<>());
  		if (isDirectory(startDirectoryPath))
  			buildSubPath(startDirectoryPath, maxDepth, filter, subPathList);
  		return subPathList;
  	}
docs: Gets sub path list.
  
  @param startDirectoryPath the start directory path
  @param maxDepth           the max depth
  @param filter             the filter
  @return the sub path list