Git Product home page Git Product logo

ziparchive's Introduction

cZipArchive

A single-class pure VB6 library for zip archives management

Simple compress

With New cZipArchive
    .AddFile "your_file"
    .CompressArchive "test.zip"
End With

Compress all files and sub-folders

With New cZipArchive
    .AddFromFolder "C:\Path\To\*.*", Recursive:=True
    .CompressArchive "archive.zip"
End With

Extract

With New cZipArchive
    .OpenArchive "test.zip"
    .Extract "extract_folder"
End With

Method Extract can optionally filter on file mask (e.g. Filter:="*.doc"), file index (e.g. Filter:=15) or array of booleans with each entry to decompress index set to True.

Password support

Make sure to set Conditional Compilation in Make tab in project's properties dialog to include ZIP_CRYPTO = 1 setting for crypto support to get compiled from sources. By default crypto support is not compiled to reduce footprint on the final executable size.

With New cZipArchive
    .OpenArchive App.Path & "\test.zip"
    .Extract App.Path & "\test", Password:="123456"
End With

Use Password parameter on AddFile method together with EncrStrength parameter to set crypto used when creating archive. Use EncrStrength:=0 for ZipCrypto (default), EncrStrength:=1 for AES-128, EncrStrength:=2 for AES-192, etc.

Note that default ZipCrypto encryption is weak but this is the only option which is compatible with Windows Explorer built-in zip folders support.

In-memory operations

Sample utility function ReadBinaryFile in /test/basic/Form1.frm returns byte array with file's content.

Dim baZip() As Byte
With New cZipArchive
    .AddFile ReadBinaryFile("sample.pdf"), "report.pdf"
    .CompressArchive baZip
End With
WriteBinaryFile "test.zip", baZip

Method Extract accepts byte array target too.

Dim baOutput() As Byte
With New cZipArchive
    .OpenArchive ReadBinaryFile("test.zip")
    .Extract baOutput, Filter:=0    '--- archive's first file only
End With

ToDo (not supported yet)

- Deflate64 (de)compressor
- Zip64 format extension (file sizes above 2GB+)
- VBA7 (x64) support

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.