ZipArchive Class


Provides properties and methods for presenting zip archive.

System.Object
    EACompression.ZipArchive

[Visual Basic]
Public Class ZipArchive
[C#]
public class ZipArchive
[C++]
public __gc class ZipArchive
[JScript]
public class ZipArchive

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. All instance members are not guaranteed to be thread safe.

Public Constructors

ZipArchive Constructor Initializes a new instance of the ZipArchive class.

Public Properties

Files Gets all files information in current zip file.
Format Gets or sets the archive file format.

Public Methods

AddDirectory Adds a directory including sub-directories and files to current zip file.
AddFile Adds a single file to current zip file.
Create Creates a new zip file.
ExtractAll Unzips all files in current zip file to specified folder.
ExtractTo Unzips a single file to local disk or byte arrray or stream.
Load Loads an existed zip file to current object to operate.
Remove Removes a single or multiple file from current zip file.
SaveAs Saves current zip file to another location.

Public Events

OnCompressing Occurs when a file is being compressed to current zip file.
OnExtracting Occurs when a file is being extracted from current zip file.
OnLoading Occurs when the object is loading a zip archive.
OnOverwrite Occurs when an existed file will be overwrited.
OnPasswordError Occurs when the decrypting password is incorrect.
OnRemoving Occurs when a file is being removed from current zip file.

Example

[Visual Basic, C#, C++] The following example demonstrates how to compress/decompress file with EACompression Zip Component. Events are not shown here, please refer to Samples section to get the full samples of EACompression.

[Visual Basic]
Imports EACompression

Sub Unzip()
    Try
        Dim oZip As New ZipArchive("TryIt")
        oZip.Load("c:\test.zip")
        Dim zs() As ZipFile = oZip.Files
        Dim count As Integer = zs.Length
        Dim password As String = ""
        Dim overwrite As Boolean = True

        For i As Integer = 0 To count - 1
            Dim z As ZipFile = zs(i)
            oZip.ExtractTo(z, password, "c:\unzipped", overwrite)
        Next

        'another way is:
        'oZip.ExtractAll( "c:\uuzipped", password ) 

        'if you want to remove one of the file from this zip archive.
        'oZip.Remove( zs(0) )
    Catch ep As Exception
        Console.Write(ep.Message)
    End Try
End Sub

Sub Zip()
    Try
        Dim oZip As New ZipArchive("TryIt")
        oZip.Create("c:\test.zip", True)   'create a new zip file
        Dim password As String = ""
        'add a single file to zip file.
        oZip.AddFile("c:\test.gif", "test.gif", password)
        'add all files and sub-directory in temp folder to zip archive
        oZip.AddDirectory("c:\temp", password)
    Catch ep As Exception
        Console.Write(ep.Message)
    End Try
End Sub

[C#]
using System;
using System.Collections;
using EACompression;

void Unzip( )
{
    try
    {
        ZipArchive oZip = new ZipArchive( "TryIt" );
        oZip.Load( "c:\\test.zip" );

        ZipFile [] zs = oZip.Files;
        int count = zs.Length;
        string password = "";
        bool overwrite = true;
        for( int i = 0; i < count; i++ )
        {
            ZipFile z = zs[i];
            oZip.ExtractTo( z, password, "c:\\unzipped", overwrite );
        }

        //another way is:
        //oZip.ExtractAll( "c:\\uuzipped", password ); 

        //if you want to remove one of the file from this zip archive.
        //oZip.Remove( zs[0] );
    }
    catch( Exception ep )
    {
        Console.Write( ep.Message );
    }
}

void Zip()
{
    try
    {
        ZipArchive oZip = new ZipArchive( "TryIt" );
        oZip.Create( "c:\\test.zip", true ); //create a new zip file;
        string password = "";
        //add a single file to zip file.
        oZip.AddFile( "c:\\test.gif", "test.gif", password );
        //add all files and sub-directory in temp folder to zip archive
        oZip.AddDirectory( "c:\\temp", password ); 
    }
    catch( Exception ep )
    {
        Console.Write( ep.Message );
    }
}

[C++]
using namespace System;
using namespace System::Collections;
using namespace EACompression; 

void Unzip( )
{
    try
    {
        ZipArchive *oZip = new ZipArchive( S"TryIt" );
        oZip->Load( S"c:\\test.zip" );

        ZipFile *zs[] = oZip->Files;
        int count = zs->Length;
        String *password = S"";
        bool overwrite = true;
        for( int i = 0; i < count; i++ )
        {
            ZipFile *z = zs[i];
            oZip->ExtractTo( z, password, S"c:\\unzipped", overwrite );
        }

        //another way is:
        //oZip->ExtractAll( S"c:\\uuzipped", password ); 

        //if you want to remove one of the file from this zip archive.
        //oZip->Remove( zs[0] );
    }
    catch( Exception *ep )
    {
        Console::Write( ep->Message );
    }
}

void Zip()
{
    try
    {
        ZipArchive *oZip = new ZipArchive( S"TryIt" );
        oZip->Create( S"c:\\test.zip", true ); //create a zip file;
        String *password = S"";
        //add a single file to zip file.
        oZip->AddFile( S"c:\\test.gif", S"test.gif", password );
        //add all files and sub-directory in temp folder to zip archive
        oZip->AddDirectory( S"c:\\temp", password ); 
    }
    catch( Exception *ep )
    {
        Console::Write( ep->Message );
    }
}