Core component of SQL Server for storing, processing, and securing data
If the files are stored on disk, about the worst way to copy them to another machine is to use SQL Server for the task. You would have to read them into a table with BULK INSERT or OPENROWSET, and the read from those tables with your C++ application. You can improve the situation by using FILESTREAM for the target columns for these files, and then read the files with OpenSqlFilestream. But you would still be copying the files an extra time, which is a waste of time, disk and resources.
If they are files in the file system, they should be copied without involving SQL Server. The one thing to be careful is not to copy too many in parallel, as you could consume a lot of memory in Windows, which could require SQL Server to trim its caches and therefore suffer from bad performance.
The files are xml and are stored on disk. In test environment we just copy them manually but can't do same in productions as we may not have server file system access directly.
So that is the issue you need to fix. The access to the file system, that is. Anything else is just nuts.
There is one more question that keeps nagging me: What are these large files doing on the SQL Server machine in the first place?