You can also call an external program with arguments and it will do it for you. Like 7Zip for exemple :
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "7za.exe";
proc.StartInfo.Arguments = "x " + folder + "\\*.*" + " -o" + folder;
proc.Start();
Command list and exemple for 7z :
7-Zip Command-Line[
^]