file_unmanaged_copy($source, $destination = NULL, $replace = FILE_EXISTS_RENAME)
Copies a file to a new location without database changes or hook invocation.
This is a powerful function that in many ways performs like an advanced version of copy().
Checks if $source and $destination are valid and readable/writable. If file already exists in $destination either the call will error out, replace the file or rename the file based on the $replace parameter. If the $source and $destination are equal,