public FileArchive openArchive(ResourceFile file, boolean acquireWriteLock,
			boolean isUserAction) throws IOException, DuplicateIdException {

		file = file.getCanonicalFile();

		FileArchive archive = getArchiveForFile(file);
		if (archive == null) {
			archive = new FileArchive(this, file, acquireWriteLock);
			Archive existingArchive =
				findOpenFileArchiveWithID(archive.getDataTypeManager().getUniversalID());
			if (existingArchive != null) {
				archive.close();
				throw new DuplicateIdException(archive.getName(), existingArchive.getName());
			}
			addArchivePath(file);
			addArchive(archive);
		}
		if (isUserAction) {
			userOpenedFileArchiveNames.add(getSaveableArchive(file.getAbsolutePath()));
		}
		return archive;
	}
Determine if archive path is allowed.
An attempt is made to disallow any path which appears to be contained
within a Ghidra installation.
@param path directory or file archive path
@return true if path is allowed
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/archive/DataTypeManagerHandler.java