Что нового

[Автоматизация] Проблемы с архивацией в 7z

IP_rat

Новичок
Сообщения
9
Репутация
0
Доброго времени суток, товарищи программисты!
Помогите решить проблему - у функции не получается архивировать в zip формате (в штатном 7z всё работает)
Тобишь при добавлении ключа параметра изменения формата архива "-tzip" скрипт не архивирует совсем
:stars: никак не могу понять где ошибка... заранее спасибо!

Код:
;$FormatFile = Тип файла
; $FileFolder = 0 - (по умолчанию) Возвращает файлы и папки вместе: 1 - Возвращает только файлы, 2 - Возвращает только папки
Func Archiv($path,$FileFolder,$FormatFile)
   Local  $arrayFile, $err, $a

	  $arrayFile=_FileListToArray($path,$FormatFile,$FileFolder) ;Создаёт список файлов и папок указаного пути
	  If @Error Then Exit

For $a=1 To $arrayFile[0]
    If $arrayFile[$a] <> @ScriptName Then Archivate($path,$arrayFile[$a])
Next
 EndFunc
Func Archivate($path, $File)
    Local $7z, $ver, $err, $ArchOptions

   $ArchOptions = ' -tzip -mmt -ms=off' ;Настройки параметров архивации

   if $7z = StringReplace(RegRead('HKCU\Software\7-Zip','Path')&'\','\\','\') & '7z.exe' Then
	Else
	$7z = @ProgramFilesDir&'\7-Zip\7z.exe'
	EndIf

   $ver = StringReplace(FileGetVersion($7z),'.','')
   If $ver > 92500 Then $ArchOptions &= ' -sdel'
    $err = RunWait('"' & $7z & '" a -mx9 "' &$path &'\'& $File & '.zip" "' &$path &'\'& $File & '"' & $ArchOptions)
    If $err = 0 AND $ver <= 92500 Then FileDelete($path &'\'&$File)
EndFunc
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
IP_rat
почему бы не воспользоваться библиотекой Zip.au3
по поводу функций твоего кода: определить версию архиватор можно один раз, а не пускать в цикле. это крайне не эффективно
 

Skif_off

Знающий
Сообщения
173
Репутация
12
IP_rat сказал(а):
при добавлении ключа параметра изменения формата архива "-tzip" скрипт не архивирует совсем
:stars: никак не могу понять где ошибка...
Не программист, но разве "-tzip" (тип архива) нужно указывать не в начале, после команды "a"? Вы не пробовали не засовывать его в $ArchOptions?
 
Верх