public static List<File> getPreviousApplicationSettingsDirsByTime() {
		List<File> settingsDirs = new ArrayList<>();

		ApplicationIdentifier myIdentifier = new ApplicationIdentifier(
			Application.getApplicationLayout().getApplicationProperties());
		String myRelease = myIdentifier.getApplicationReleaseName();
		String myDirName = Application.getUserSettingsDirectory().getName();

		LOG.trace("Finding previous application settings directories for " + myIdentifier);

		for (File dir : getUserSettingsDirsByTime()) {

			// Ignore the currently active user settings directory.
			// By definition, it is not a previous one.
			String dirName = dir.getName();
			if (dirName.equals(myDirName)) {
				continue;
			}

			LOG.trace("\tchecking " + dirName);

			if (dirName.startsWith(".")) {
				dirName = dirName.substring(1);
			}

			try {
				// The current release name has to match for it to be considered				
				ApplicationIdentifier identifier = new ApplicationIdentifier(dirName);
				String release = identifier.getApplicationReleaseName();
				if (release.equals(myRelease)) {
					LOG.trace("\t\tkeeping");
					settingsDirs.add(dir);
				}
				else {
					LOG.trace("\t\tskipping");
				}
			}
			catch (IllegalArgumentException e) {
				// The directory name didn't contain a valid application identifier...skip it
				LOG.trace("\tdir does not have an application identifier - skipping");
			}
		}
		return settingsDirs;
	}
This is the same as {@link #getUserSettingsDirsByTime()} except that it doesn't include the 
current installation or installations with different release names

@return the list of previous directories, sorted by time
Ghidra/Framework/Generic/src/main/java/ghidra/framework/GenericRunInfo.java