From the manual:
---8<-----
bool move_uploaded_file(string filename, string destination)
This function checks to ensure that the file designated by filename is a valid upload file (meaning that it was uploaded via PHP's HTTP POST upload mechanism). If the file is valid, it will be moved to the filename given by destination.
If filename is not a valid upload file, then no action will occur, and move_uploaded_file() will return FALSE.
If filename is a valid upload file, but cannot be moved for some reason, no action will occur, and move_uploaded_file() will return FALSE. Additionally, a warning will be issued.
---8<-----
Try:
move_uploaded_file("C:/dir/filename.file", "D:/newdir/newfilename.file");
NOTE! The last two paragraphs. If PHP thinks your file is not uploaded it will not take any action. If the file cannot be moved by some reason (proper authority etc) PHP will not take any action.