I wrote 3 consecutive lines to copy 3 files from Assets to DirDefaultExternal.
Then I tried to send those files using FTP; for the second and third file I got a "no such file or directory found" message.
Investigating I found that second and third copy failed, without exceptions.
Adding Sleep(2000) after each copy line, the project works.
It would be "nice" to have a Copy_Completed event or, at least, an exception - error message.
(If that 2 seconds pause was not enough or was excessive?)
File.Copy is a synchronous method. The file should be there immediately after the command is executed.
I never encountered an issue such as the one described.
Are you using File.Copy2? Are you closing the output stream?