void migrateItem(LocalFolderItem item) throws IOException {

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

		// Perform move without assigning new storageName

		String destFolderPath = item.getParentPath();
		String itemName = item.getName();
		String path = item.getPathName();

		indexJournal.open();
		try {
			Folder folder = getFolder(destFolderPath, GetFolderOption.READ_ONLY);
			if (folder.items.containsKey(itemName)) {
				throw new DuplicateFileException("Item already exists: " + path);
			}

			Item newItem = new Item(folder, itemName);

			item.moveTo(newItem.itemStorage.dir, newItem.itemStorage.storageName, path, itemName);

			newItem.itemStorage.getPropertyFile().writeState();

			indexJournal.addItem(newItem);
		}
		catch (NotFoundException e) {
			throw new FileNotFoundException(e.getMessage());
		}
		finally {
			indexJournal.close();
		}

		getListener().itemCreated(destFolderPath, itemName);
	}
Deallocate item storage
@param folderPath
@param itemName
Ghidra/Framework/FileSystem/src/main/java/ghidra/framework/store/local/IndexedLocalFileSystem.java