private void cacheMaintForLeafDir(File dir) {
			long cutoffMS = System.currentTimeMillis() - MAX_FILE_AGE_MS;

			for (File f : dir.listFiles()) {
				if (f.isFile() && isCacheFileName(f.getName())) {
					if (f.lastModified() < cutoffMS) {
						if (f.delete()) {
							Msg.debug(this, "Expired cache file " + f);
							continue;
						}
						Msg.error(this, "Failed to delete cache file " + f);
					}
					storageEstimateBytes += f.length();
				}
			}
		}
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