public void testValidName(String name, boolean isPath) throws InvalidNameException {
		if (name == null || name.length() == 0) {
			throw new InvalidNameException("path or name is empty or null");
		}

		if (isPath) {
			if (name.equals(SEPARATOR)) {
				return;
			}
			if (name.startsWith(SEPARATOR)) {
				name = name.substring(1);
			}
			String[] splitName = name.split(SEPARATOR);
			for (String element : splitName) {
				testValidName(element, false);
			}
			return;
		}

		if (!isPath && name.length() > getMaxNameLength()) {
			throw new InvalidNameException("Project file names within Ghidra must be less than " +
				getMaxNameLength() + " characters in length.");
		}

		if (name.startsWith(HIDDEN_ITEM_PREFIX)) {
			throw new InvalidNameException(
				name + " starts with a reserved prefix '" + HIDDEN_ITEM_PREFIX + "'");
		}

		for (int i = 0; i < name.length(); i++) {
			char c = name.charAt(i);
			if (!isValidNameCharacter(c)) {
				throw new InvalidNameException(
					name + " contains an invalid character: \'" + c + "\'");
			}
		}
	}
Validate a folder/item name or path.
@param name folder or item name
@param isPath if true name represents full path
@throws InvalidNameException if name is invalid
Ghidra/Framework/FileSystem/src/main/java/ghidra/framework/store/local/LocalFileSystem.java