Search code examples
c++windowsfile-copying

Using windows CopyFile function to copy all files with certain name format


Hello! I am updating some C code that copys files with a certain name. basically, I have a directory with a bunch of files named like so:

AAAAA.1.XYZ
AAAAA.2.ZYX
AAAAA.3.YZX
BBBBB.1.XYZ
BBBBB.2.ZYX

Now, In the old code, they just used a call to ShellExecute and used xcopy.exe. to get all the files starting with AAAAA, they just gave xcopy the name of the file as AAAAA.* and it knew to copy all of the files starting with AAAAA. now, im trying to get it to copy with out having to use the command line, and I am running into trouble. I was hoping CopyFile would be smart enough to handle AAAAA.* as the file to be copied, but it doesnt at all do what xcopy did. So, any Ideas on how to do this without the external call to xcopy.exe?


Solution

  • You could also use SHFileOperation or IFileOperation (the latter being only available from Vista upwards but is now the recommended way according to MSDN). SHFileOperation supports wildcards and displays a progress by default, but there's also a flag for silent operation.

    Check out the following MSDN links for more info:

    http://msdn.microsoft.com/en-us/library/bb762164(v=VS.85).aspx

    http://msdn.microsoft.com/en-us/library/bb775771(v=VS.85).aspx