/* Function to do a move across file systems. */
EFI_STATUS MoveBetweenFileSystems(IN EFI_SHELL_FILE_INFO *Node, IN CONST CHAR16 *DestPath, OUT VOID **Resp)
/* Function to do a move across file systems. */
EFI_STATUS MoveBetweenFileSystems(IN EFI_SHELL_FILE_INFO *Node, IN CONST CHAR16 *DestPath, OUT VOID **Resp)
{
  SHELL_STATUS  ShellStatus;
  ShellStatus = CopySingleFile (Node->FullName, DestPath, Resp, TRUE, L"mv");
  if (ShellStatus == SHELL_SUCCESS) {
    CascadeDelete (Node, TRUE);
    Node->Handle = NULL;
  } else if (ShellStatus == SHELL_ABORTED) {
    return EFI_ABORTED;
  } else if (ShellStatus == SHELL_ACCESS_DENIED) {
    return EFI_ACCESS_DENIED;
  } else if (ShellStatus == SHELL_VOLUME_FULL) {
    return EFI_VOLUME_FULL;
  } else {
    return EFI_UNSUPPORTED;
  }
  return (EFI_SUCCESS);
}