ZipArchive.OnPasswordError Event


Occurs when the decrypting password is incorrect, you can use this event to correct the password.

[Visual Basic]
Public Event OnPasswordError As OnPasswordErrorEventHandler
Public Delegate Sub OnPasswordErrorEventHandler( _
    ByVal sender As Object, _
    ByVal z As ZipFile, _
    ByRef password As String _
)
[C#]
public event OnPasswordErrorEventHandler OnPasswordError;
public delegate void OnPasswordErrorEventHandler( 
     object sender, 
     ZipFile z,
     ref string password
);
[C++]
public: __event OnPasswordErrorEventHandler* OnPasswordError;
public __gc __delegate void OnPasswordErrorEventHandler( 
     Object* sender, 
     ZipFile* z,
     String** password
);
[JScript] In JScript, you can handle the events defined by a class. However, you cannot define your own.

Event Data

sender
The source (ZipArchive instance) of the event.
z
The (ZipFile instance) being extracted.
password
Sets a new password to decrypt file.

Example

[Visual Basic, C#, C++] To get the full samples of EACompression, please refer to Samples section.

[Visual Basic]
Imports EACompression
Imports System.IO

Module Module1
    Sub Main()
        Try
            Dim oZip As New ZipArchive("TryIt")
            AddHandler oZip.OnPasswordError, AddressOf OnPasswordError
            
            oZip.Load("c:\test.zip")
            Dim password As String = "badpassword"
            oZip.ExtractAll( "c:\unzipped", password )
            
        Catch ep As Exception
            Console.Write(ep.Message)
        End Try
    End Sub

    Sub OnPasswordError( _
    ByVal sender As Object, _
    ByVal z As ZipFile, _
    ByRef password As String _
)
        password = "correctpassword"
    End Sub
End Module

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

namespace test
{
    class Class1
    {
        public static void OnPasswordError( 
            object sender, 
            ZipFile z, 
            ref string password )
        {
            password = "correctpassword";
        }
        
        [STAThread]
        static void Main(string[] args)
        {
            try
            {
                ZipArchive oZip = new ZipArchive( "TryIt" );
                oZip.OnPasswordError += new ZipArchive.OnPasswordErrorEventHandler( OnPasswordError );
                
                oZip.Load( "c:\\test.zip" );
                string password = "badpassword";
                oZip.ExtractAll( "c:\\unzipped", password );
            
            }
            catch( Exception ep )
            {
                Console.Write( ep.Message );
            }       
        }   
    }
}

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

public __gc class ZipArchiveEventHandler
{
public:
    static void OnPasswordError( 
        Object* sender, 
        ZipFile* z,
        String** password
    )
    {
        *password = "correctpassword";
    }
};

int _tmain()
{
    try
    {
        ZipArchive *oZip = new ZipArchive( S"TryIt" );
        oZip->OnPasswordError += new ZipArchive::OnPasswordErrorEventHandler( NULL, &ZipArchiveEventHandler::OnPasswordError );
       
        oZip->Load( S"c:\\test.zip" );
    
        String *password = S"badpassword";
        oZip->ExtractAll( S"c:\\unzipped", password );
    }
    catch( Exception *ep )
    {
        Console::Write( ep->Message );
    }
    return 0;
}

See Also

Handle file overwriting and path structure
Encrypt and decrypt file with password