private void cacheMaintForDir(File dir, int dirLevel) {
			if (dirLevel < nestingLevel) {
				for (File f : dir.listFiles()) {
					String name = f.getName();
					if (f.isDirectory() && NESTING_DIR_NAME_REGEX.matcher(name).matches()) {
						cacheMaintForDir(f, dirLevel + 1);
					}
				}
			}
			else if (dirLevel == nestingLevel) {
				cacheMaintForLeafDir(dir);
			}
		}
Prunes cache if interval since last maintenance exceeds {@link #MAINT_INTERVAL_MS}
<p>
Only called during construction, and the only known multi-process conflict that can occur
is when re-writing the "lastMaint" timestamp file, which isn't a problem as its the
approximate timestamp of that file that is important, not the contents.

@param cacheDir cache directory location 
@param nestingLevel the depth of directory nesting, 2 for old style, 1 for newer style
@return {@link FileCacheMaintenanceDaemon} instance if started, null otherwise
Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FileCache.java