I don't know of any source code floating around to answer the question, but it shouldn't be too difficult to implement. In the Windows world, take a look at the FindFirstFileEx and FindNextFile API functions. The trick to writing these programs is remembering to look for the directories before you look for the actual search pattern you are supposed to find. As for copying the files, you have the CopyFile API.
This was first published in January 2002