Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
MSDN Library
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.


Windows Mobile 6.5
A version of this page is also available for

This function copies an existing file to a new file. A remote API (RAPI) version of this function exists called CeCopyFile (RAPI).

BOOL CopyFile(
  LPCTSTR lpExistingFileName, 
  LPCTSTR lpNewFileName, 
  BOOL bFailIfExists 


[in] Long pointer to a null-terminated string that specifies the name of an existing file.


[in] Long pointer to a null-terminated string that specifies the name of the new file.


[in] Boolean that specifies how this operation is to proceed if a file of the same name as that specified by lpNewFileName already exists. If this parameter is set to TRUE and the new file already exists, the function fails. If this parameter is set to FALSE and the new file already exists, the function overwrites the existing file and succeeds.

Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.

File attributes for the existing file are copied to the new file. For example, if an existing file has the FILE_ATTRIBUTE_READONLY file attribute, a copy created through a call to this function also has FILE_ATTRIBUTE_READONLY. For more information, see CreateFile.

To store the maximum number of files on PC card storage devices, limit file names to eight uppercase characters and file extensions to three uppercase characters. In addition, do not allow non-OEM characters in file names. File names that do not conform to these limits require more than one physical directory entry on a PC card.

This function does not operate on directories.

Windows Embedded CEWindows CE 1.0 and later
Windows MobileWindows Mobile Version 5.0 and later

Community Additions

© 2015 Microsoft