private static List<File> collectAllApplicationDirectories(File dataDirectoryParentDir,
			boolean legacy) {

		String appName = Application.getName().replaceAll("\\s", "").toLowerCase();
		String settingsDirPrefix = (legacy ? "." : "") + appName;
		FileFilter userDirFilter = f -> {
			String name = f.getName();
			return f.isDirectory() && name.startsWith(settingsDirPrefix) &&
				!name.endsWith(TEST_DIRECTORY_SUFFIX);
		};

		// The current directory structure--rooted under '.<application name>'.   For example,
		// /some/path/<user home>/.application_name/..application_name_application-version
		File[] userDirs = dataDirectoryParentDir.listFiles(userDirFilter);
		return CollectionUtils.asList(userDirs);
	}
Get all of the applications's settings directories 
({@code .<i>application_name_version</i>}) for various versions in descending order by the 
modification time. In other words, {@code list.get(0)} will be the directory 
with the most recent modification time. If two directories have the same time then the 
directories will simply be sorted based on their pathnames as a string.
<p>
<b>Note: </b>This method ignores Test directories
Ghidra/Framework/Generic/src/main/java/ghidra/framework/GenericRunInfo.java