@Override
	public synchronized void renameFolder(String parentPath, String folderName,
			String newFolderName) throws InvalidNameException, IOException {

		if (readOnly) {
			throw new ReadOnlyException();
		}

		testValidName(newFolderName, false);
		String folderPath = getPath(parentPath, folderName);
		File folder = getFile(folderPath);
		if (!folder.isDirectory()) {
			throw new FileNotFoundException(folderPath + " does not exist or is not a folder");
		}
		String newFolderPath = getPath(parentPath, newFolderName);
		File newFolder = getFile(newFolderPath);
		if (newFolder.exists()) {
			throw new DuplicateFileException(newFolderPath + " already exists.");
		}

// TODO Must scan for items in use !!!

		if (!folder.renameTo(newFolder)) {
			throw new IOException("Folder may contain files that are in use");
		}

		eventManager.folderRenamed(parentPath, folderName, newFolderName);
	}
Deallocate item storage
@param folderPath
@param itemName
Ghidra/Framework/FileSystem/src/main/java/ghidra/framework/store/local/MangledLocalFileSystem.java