My only problem is using something like File:Find is that I think it's better for finding file "needles in a haystack", rather than processing ALL the files (they're all PNGs in my case). It also makes the directory handling more complicated as I need to check or create (regardless) the output folder for and every file created. Unless, I suppose, File:Find returns files in blocks so I can check the last folder created and only mkdir when needed.
Do you also feel that since every file/sub-directory is being processed, then a recusrive search would be best. i.e. every time a new directory is handle, I mkdir the same in the destination.