Viktor1703
AutoIT Гуру
- Сообщения
- 1,535
- Репутация
- 413
AutoIt: 3+
Версия: 2.33
Категория: Вспомогательные функции, Разное
Описание: uZip автономный модуль для работы с Zip архивами. Умеет ставить пароль на архив, извлекать файл из архива как на диск так и в память, устанавливать уровень компрессии архива, удалять, переименовывать файлы внутри архива и т.д.
Код/Пример:
Файл: uZip
Снимок: None.
Список доступных функций:
Примечания:
История версий:
Источник: autoit-script.ru
Автор(ы): Viktor1703, Afonichev Sergey
Версия: 2.33
Категория: Вспомогательные функции, Разное
Описание: uZip автономный модуль для работы с Zip архивами. Умеет ставить пароль на архив, извлекать файл из архива как на диск так и в память, устанавливать уровень компрессии архива, удалять, переименовывать файлы внутри архива и т.д.
Код/Пример:
Код:
#include <uZip.au3>
Global $sPackage = @ScriptDir & '\test.zip' ;~ Имя архива.
Global $sPassword = '' ;~ Пароль на архив. (если пусто, то пароль не ставится.)
If _uZip_Startup() Then
;~ Функция обратного вызова для отслеживания процесса добавления и извлечения файлов из архива.
$tCallback = DllCallbackRegister('ProgressCallback', 'uint', 'str;float;int')
_uZip_AddProgressCallback(DllCallbackGetPtr($tCallback)) ;~ Прогресс добавления файлов в архив.
_uZip_ExtractProgressCallback(DllCallbackGetPtr($tCallback)) ;~ Прогресс извлечения файлов из архива.
;~ Создаём архив.
If _uZip_Create($sPackage, $sPassword) Then
;~ Добавляем файлы в созданный архив.
_uZip_AddFile($sPackage, @WindowsDir & '\Notepad.exe')
_uZip_AddFile($sPackage, @WindowsDir & '\explorer.exe')
MsgBox(0, 'uZip', 'Version: ' & _uZip_GetVersion()) ;~ Версия uZip модуля.
;~ Загружаем файл из ахива в память и получаем указатель на область памяти.
$pMem = _uZip_LoadToMemory($sPackage, 'Notepad.exe', $sPassword)
;~ Узнаём MD5 и SHA1 контрольные суммы файла.
MsgBox(0, 'uZip', 'Notepad.exe' & @CRLF & 'MD5 Checksum: ' & _uZip_GetFileMD5($pMem) & @CRLF & 'SHA1 Checksum: ' & _uZip_GetFileSHA1($pMem))
;~ Узнаём размер области памяти (данных загруженных в память).
MsgBox(0, 'uZip', 'Memory size: ' & _uZip_SizeMemory($pMem))
;~ Освобождаем память.
_uZip_CloseMemory($pMem)
;~ Узанём Index файла по его имени в архиве.
$Index = _uZip_GetFileIndex($sPackage, 'Notepad.exe')
;~ Загружаем информацию о файле.
If _uZip_GetFileInfo($sPackage, $Index) Then
MsgBox(0, 'GetFileInfo', 'Compressed size: ' & @TAB & @TAB & _uZip_GetCompressedSize() & @CRLF & _
'Compression method: ' & @TAB & _uZip_GetCompressionMethod() & @CRLF & _
'CRC32: ' & @TAB & @TAB & @TAB & _uZip_GetCrc32() & @CRLF & _
'External file attributes: ' & @TAB & _uZip_GetExternalFileAttributes() & @CRLF & _
'File name: ' & @TAB & @TAB & _uZip_GetFileName() & @CRLF & _
'IsPassword: ' & @TAB & @TAB & _uZip_GetFlag() & @CRLF & _
'Internal file attributes: ' & @TAB & _uZip_GetInternalFileAttributes() & @CRLF & _
'Size file name: ' & @TAB & @TAB & _uZip_GetSizeFileName() & @CRLF & _
'File date: ' & @TAB & @TAB & _uZip_GetFileDate() & @CRLF & _
'Uncompressed size: ' & @TAB & _uZip_GetUnCompressedSize() & @CRLF & _
'Version needed: ' & @TAB & @TAB & _uZip_GetVersionNeeded())
EndIf
;~ Загружаем файл в память (в отличии от _uZip_LoadToMemory функция _uZip_LoadToMemoryEx возвращяет не указатель а данные.)
FileWrite('Test.exe', _uZip_LoadToMemoryEx($sPackage, 'Notepad.exe', $sPassword))
;~ Извлекаем файл из архива на диск.
;_uZip_SaveToFile($sPackage, 'Notepad.exe', $sPassword, @ScriptDir)
;~ Удаляем файл из архива.
_uZip_DeleteFile($sPackage, 'Notepad.exe')
EndIf
DllCallbackFree($tCallback)
_uZip_Shutdown()
EndIf
Func ProgressCallback($sFileName, $fProgress, $lUserParam)
ConsoleWrite($sFileName & ' ' & StringFormat('%0.1f', $fProgress) & '%' & @CRLF)
EndFunc
Файл: uZip
Снимок: None.
Список доступных функций:
_uZip_Startup
_uZip_Shutdown
_uZip_Create
_uZip_AddFile
_uZip_DeleteFile
_uZip_RenameFile
_uZip_AddMemory
_uZip_LoadToMemory
_uZip_LoadToMemoryEx
_uZip_SaveToFile
_uZip_SaveFromMemory
_uZip_GetFileMD5
_uZip_GetFileSHA1
_uZip_SizeMemory
_uZip_CloseMemory
_uZip_GetFileCount
_uZip_GetVersion
_uZip_GetFileIndex
_uZip_GetFileInfo
_uZip_GetCompressedSize
_uZip_GetCompressionMethod
_uZip_GetCrc32
_uZip_GetExternalFileAttributes
_uZip_GetFileName
_uZip_GetFlag
_uZip_GetInternalFileAttributes
_uZip_GetSizeFileName
_uZip_GetFileDate
_uZip_GetUnCompressedSize
_uZip_GetVersionNeeded
_uZip_AddProgressCallback
_uZip_ExtractProgressCallback
_uZip_Shutdown
_uZip_Create
_uZip_AddFile
_uZip_DeleteFile
_uZip_RenameFile
_uZip_AddMemory
_uZip_LoadToMemory
_uZip_LoadToMemoryEx
_uZip_SaveToFile
_uZip_SaveFromMemory
_uZip_GetFileMD5
_uZip_GetFileSHA1
_uZip_SizeMemory
_uZip_CloseMemory
_uZip_GetFileCount
_uZip_GetVersion
_uZip_GetFileIndex
_uZip_GetFileInfo
_uZip_GetCompressedSize
_uZip_GetCompressionMethod
_uZip_GetCrc32
_uZip_GetExternalFileAttributes
_uZip_GetFileName
_uZip_GetFlag
_uZip_GetInternalFileAttributes
_uZip_GetSizeFileName
_uZip_GetFileDate
_uZip_GetUnCompressedSize
_uZip_GetVersionNeeded
_uZip_AddProgressCallback
_uZip_ExtractProgressCallback
Примечания:
Функции:
_uZip_DeleteFile()
_uZip_RenameFile()
Использовать только если архив не под паролем.
_uZip_DeleteFile()
_uZip_RenameFile()
Использовать только если архив не под паролем.
История версий:
2.33
Источник: autoit-script.ru
Автор(ы): Viktor1703, Afonichev Sergey