You can use the System.Management and the WMI class win32_directory to compress a folder. string dirName = "c:\\\\someFolder"; string objPath = "Win32_Directory.Name=" + "\"" + dirName + "\""; using (ManagementObject dir= new ManagementObject(objPath)) { ManagementBaseObject outParams = dir.InvokeMethod("Compress", null, null); uint ret = (uint)(outParams.Properties["ReturnValue"].Value); if(ret == 0) Console.WriteLine("Success"); else Console.WriteLine("Failed with error code: {0}", ret); }