Вы можете попробовать проект ZipArchive
- Одноклассная библиотека VB6 для zip со скоростью ASM
Сначала загрузите и добавьте cZipArchive.cls
вваш проект VB6, тогда вы можете использовать эту ZipFolder
функцию
Private Function ZipFolder( _
SourceFolder As String, _
DistZipeName As String, _
Optional LastError As String) As Boolean
On Error GoTo EH
With New cZipArchive
If Not .AddFromFolder(SourceFolder & IIf(Right$(SourceFolder, 1) <> "\", _
"\", vbNullString) & "*.*", Recursive:=True) Then
LastError = .LastError
GoTo QH
End If
If Not .CompressArchive(DistZipeName) Then
LastError = .LastError
GoTo QH
End If
End With
'--- success
ZipFolder = True
QH:
Exit Function
EH:
LastError = Err.Description
Resume QH
End Function
Конечно, вы можете сделать гораздо больше вещей с этим классом (например, перечисление файлов в zip-архиве, извлечение файлов, отображение хода выполнения операции, сжатие только в память, уровни шифрования AES), и вы можете найти больше образцов в README.md
в корне репозитория или в исходном коде vbzip
утилиты командной строкикоторые могут сжимать / извлекать почтовые архивы и многое другое
VbZip 0.2.3 (c) 2017-2018 by wqweto@gmail.com (12.1.2018 17:15:52)
Usage: vbzip.exe <command> [-options...] <archive_file> [files]...
e.g. vbzip.exe a backup.zip doc1.txt reports*.xls
Commands:
a add files to archive
l list archive contents
t test archive integrity
x extract files from archive
Options:
-r recurse subfolders
-e include empty folders
-m LEVEL compression level [default: 6]
-o OUTPUT output folder to extract to
-i no percentage indicator
-y assume yes to all questions
-p PASSWORD password used to encrypt/decrypt files
-mem METHOD encryption method
-so output to stdout
-si NAME input from stdin zip to NAME in archive