Here is one way to extract zip files. The example is done in VB.NET using the Shell COM.
Imports System.IO ' Add COM reference "Microsoft Shell Controls And Automation" Imports Shell32
Dim ZipFile As String = "D:\temp\files.zip" Dim ZipDir As String = "D:\temp\files\" Dim Shell As Shell32.IShellDispatch2 Dim ShellFolder As Shell32.Folder If File.Exists(ZipFile) Then Shell = CType(CreateObject("Shell.Application"), IShellDispatch2) If Not Directory.Exists(ZipDir) Then Directory.CreateDirectory(ZipDir) ShellFolder = Shell.NameSpace(ZipDir) If ShellFolder IsNot Nothing Then ShellFolder.CopyHere(Shell.NameSpace(ZipFile).Items) End If End If
One downside with this approach is that a dialog box can show up while extracting the zip file.
Other ways to Zip and Unzip in C#, VB, any .NET language is using DotNetZip (recommended) or SharpZipLib as well as SevenZipSharp for 7z (7-zip). There is also the GZipStream Class that comes with .NET Framework but only works with .gz files. System.IO.Packaging.ZipPackage is available in .NET Framework 3 and newer but is not straightforward to use and not recommended.