public static final List<File> gatherFilesFromDir(File currDirToSearch,
			List<String> currFileTypeExtList, boolean useRecursionInSearch)
			throws FileSearcherException {
		List<File> foundFilesFromSearchList = new ArrayList<File>();

		//Sanity Checks before use!
		if (currDirToSearch == null) {
			throw new FileSearcherException("The Directory to Search cannot be NULL!");
		}
		else if (!currDirToSearch.isDirectory()) {
			throw new FileSearcherException(
				"The Directory must be a valid Directory! It currently is not!");
		}
		else if (currFileTypeExtList == null) {
			throw new FileSearcherException("File Type Extension list is NULL! " +
				"Must Provide at least 1 File Type Extension to search for!");
		}
		else if ((currFileTypeExtList.size() == 0) || (currFileTypeExtList.isEmpty())) {
			throw new FileSearcherException(
				"Must Provide at least 1 File Type Extension to search for!");
		}

		if (currDirToSearch.isDirectory()) { //Another Sanity check!
			File[] currDirToSearchRoot = currDirToSearch.listFiles();
			locateFilesFromDirRoot(currDirToSearchRoot, currFileTypeExtList,
				foundFilesFromSearchList, useRecursionInSearch);
		}
		return foundFilesFromSearchList;
	}
Gather's all Files from the Directory
that have the passed in File Type Extension.
Returns this List of Files Found.

@param currDirToSearch - The Directory to Search
@param currFileTypeExtList - The List of File Type Extensions to Search for
@param useRecursionInSearch - Determine whether to Search recursively or not
@return - List of Files that were found
Ghidra/Framework/SoftwareModeling/src/test/java/ghidra/sleigh/grammar/FileSearcher.java