Что нового

Упаковка файлов и отправка

Сообщения
95
Репутация
-1
Доброе время суток. Требуется:
  1. Получить список каталогов
  2. Выбрать несколько каталогов из списка с помощью чекбокса
  3. Упаковать содержимое выбранных каталогов в архив с помощью 7z и команды
 

musicstashall

Знающий
Сообщения
322
Репутация
7
Упаковка и распаковка архивов:
Код:
#include <_7Zip.au3>

Func _ExtractZip()
    If @Compiled Then $hDLL_7ZIP = DllOpen($temp & '\7-zip32.dll')
    If Not @Compiled Then $hDLL_7ZIP = DllOpen(@ScriptDir & '\7-zip32.dll')
    Local $ArcFile = $temp & '\arch32.7z'
    Local $password = 'password'
    _7ZipSetOwnerWindowEx($MainGui, "_ARCHIVERPROC")
    _7ZIPExtractEx(0, $ArcFile, $temp, 1, 0, 1, 0, 0, 0, 0, $password, 1)
    $ArcFile = $temp & '\arch64.7z'
    _7ZIPExtractEx(0, $ArcFile, $temp, 1, 1, 1, 0, 0, 0, 0, $password, 1)
    _7ZipKillOwnerWindowEx($MainGui)
    DllClose($hDLL_7ZIP)
EndFunc

Func _CreateZip()
    If Not @AutoItX64 Then $hDLL_7ZIP = DllOpen(@ScriptDir & '\7-zip32.dll')
    If @AutoItX64 Then $hDLL_7ZIP = DllOpen(@ScriptDir & '\7-zip64.dll')   
    Local $_path = 'D:\InstallFiles'
    Local $password = StringTrimRight(StringTrimLeft('password', 1), 1)
    _7ZipAdd(0, $_path & '\Prepare\arch64.7z', '', 0, 9, 1, $_path & '\*', $_path & '\Prepare', $password)
    DllClose($hDLL_7ZIP)
EndFunc

Пути, разумеется, везде свои написать. Документация

Получает массив файлов и/или папок в каталоге
Код:
_FileListToArray

Сообщение автоматически объединено:

Правда, я так и не понял, для чего это нужно делать. Ведь все эти операции вполне себе можно осуществить прямо из проводника. Выбрать нужные папки и файлы и в контекстном меню выбрать «добавить в архив». Чтобы это все реализовать в скрипте, придется изобразить нечто подобное проводнику Windows, что теряет смысл.
 

Вложения

  • _7Zip.au3
    35.7 КБ · Просмотры: 1
  • 7-zip.dll.zip
    833.6 КБ · Просмотры: 1
Последнее редактирование:
Верх