private void findCheckedOutFiles(String folderPath, List<DomainFile> checkoutList,
			TaskMonitor monitor) throws IOException, CancelledException {

		DomainFolder folder = getFolder(folderPath);
		if (folder == null) {
			return;
		}

		GhidraFolderData folderData = getRootFolderData().getFolderPathData(folderPath, false);
		for (String name : folderData.getFileNames()) {
			monitor.checkCancelled();
			GhidraFileData fileData = folderData.getFileData(name, false);
			if (fileData != null && fileData.isCheckedOut()) {
				checkoutList.add(new GhidraFile(folderData.getDomainFolder(), name));
			}
		}

		if (!folderPath.endsWith(FileSystem.SEPARATOR)) {
			folderPath += FileSystem.SEPARATOR;
		}

		for (String subfolder : fileSystem.getFolderNames(folderPath)) {
			monitor.checkCancelled();
			findCheckedOutFiles(folderPath + subfolder, checkoutList, monitor);
		}
	}
Find all project files which are currently checked-out
@param monitor task monitor (no progress updates)
@return list of current checkout files
@throws IOException if IO error occurs
@throws CancelledException if task cancelled
Ghidra/Framework/Project/src/main/java/ghidra/framework/data/DefaultProjectData.java