If you have vCenter, you could shutdown the VM and do a cold migration. Or use VMotion on a live VM but only if you have VMotion license and a shared storage.
If you do not have vCenter Server, you can simply power off the VM, go on destination host, browse the datastore with the required VM, right click on the vmx file, add to the inventory and then power-on the VM.
There could be a question about keep or modify the UUID of the VM (on vSphere the question is about you have moved or you have copied the VM). Choose "keep" (or "moved").
This is very useful also in case where exist a vCenter Server, it's a VM, but there isn't a VMotion license (like in vSphere Essential bundle).
VM Storage Migration
If you have vCenter Server, you could shutdown the VM and do a cold migration. Or if the ESX host in which the guest is on local storage, can see the new shared storage, you can do an SVMotion and then you wouldn't have downtime.
If you do not have vCenter Server, you can copy the VM folder (with VM powered off) using cp commnad from ESX CLI.
Note that your datastore are under /vmfs/volumes.
After the copy you add add the "new" VM to the inventory, test it, and if all works delete the old one.
VM file renaming
If you rename the VM name, the VM files associated are not renamed. With vCenter a simple trick is make a storage migration (or Storage vMotion) to fix the name.
Without vCenter the solution is described in this thread:
Upgrade a major release of ESX/ESXi
With vCenter Server is very simple: just use VUM.
Without vCenter Server there are different solutions.