If executing the code doesn't give any errors, you should utilize the debugger to investigate what goes wrong. Perhaps the path is invalid and the loops don't find anything etc.
To use the debugger, execute the code line-by-line and investigate the variables, have a look at
Tutorial: Debug C# code - Visual Studio | Microsoft Docs[
^]
ADDDITION
Looking at the examples, in case you use verbatim strings (@) ensure that you don't escape folder separators. In other words either use
string souceFile = @"C:\TEMP\";
or
string souceFile = "C:\\TEMP\\";