static File updateCaseInsensitiveFilePath(File f) throws IOException {
		// On Windows, getCanonicalFile() will return a corrected path using the case of 
		// the actual file element on the file system (eg. "c:/users" -> "c:/Users"), if the
		// element exists.
		return OperatingSystem.CURRENT_OPERATING_SYSTEM == OperatingSystem.WINDOWS
				? f.getCanonicalFile()
				: f;
	}
Looks up a file, by its string path, using a custom comparator.
<p>
If any element of the path, or the filename are not found, returns a null.
<p>
A null custom comparator avoids testing each element of the directory path and instead
relies on the native local file system's name matching.

@param baseDir optional directory to start lookup at 
@param path String path
@param nameComp optional {@link Comparator} that will compare filenames, or {@code null} 
to use native local file system lookup (eg. case-insensitive on windows)
@return File that points to the requested path, or null if file was not present on the
local filesystem (because it doesn't exist, or the name comparison function rejected it)
Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/LocalFileSystem.java