€€: Version 2 Mit ISO erzeugen / entpacken..nach bernd670's "Anleitung in einem Thread"...RAR entpacken geht auch , mit _extractAll, .rar schreiben aber nicht (ausser WinRar ist inst.)
Hi ![]()
es gibt ja viele ZIP lösungen, aber wirklich gefallen tut mir keine ![]()
ALso hab ich mir selber eine gebalstet, eine UDF, basierend auf 7zip!
es gibt derzeit 4 funcs, die da sind:
*) Datei in ein ZIP archiv
*) Ganzer Inhalt eines Ordners in ZIP archiv
*) Inhalt eines ZIP archives entpacken in Zielverz.
*) Inhalt anschauen vom ZIP archiv
genauer:
Spoiler anzeigen
ExtractAll($packed, $target) : Entpackt das archiv $packed ins verzeichniss $target
_FileToARchive($path, $packed) : Packt eine Datei in ein Archiv namens $packed ($packed muss der Zielpfad, also zb C:\Ziel.zip sein, Ausgabe ist ZIP Format!
_listArchive($packed) : Gibt den Inhalt und Infos der gepackten Datei zurück - als array! benutzung zb: _ArrayDisplay(_listArchive("C:\Programme\7-Zip\asd\222.zip"))
_dirToArchive($dir, $packed, $sub = 1) : Kopiert einen gesamten ordner - inklusive unterordner - des verzeichnisses $dir (ZB: C:\Programme\7-Zip) in das Archiv $packed!
WEnn KEINE unterordner kopiert werden sollen, so aufrufen: _DirToArchive("C:\Programme\7-Zip\, "C:\lol\lol.zip\, 0) !
hier der code (unten auch zum dowload mit 7z.exe und lizenz!)
Spoiler anzeigen
#cs
[/autoit] [autoit][/autoit] [autoit]ZIP UDF by Huggy
+++++++++++++++++++++++++#########++++++++++ FUNKTIONEN ###############+++++++++++###############
_ExtractAll($packed, $target) : Entpackt das archiv $packed ins verzeichniss $target
_FileToARchive($path, $packed) : Packt eine Datei in ein Archiv namens $packed ($packed muss der Zielpfad, also zb C:\Ziel.zip sein, Ausgabe ist ZIP Format!
_listArchive($packed) : Gibt den Inhalt und Infos der gepackten Datei zurück - als array! benutzung zb: _ArrayDisplay(_listArchive("C:\Programme\7-Zip\asd\222.zip"))
_dirToArchive($dir, $packed, $sub = 1) : Kopiert einen gesamten ordner - inklusive unterordner - des verzeichnisses $dir (ZB: C:\Programme\7-Zip) in das Archiv $packed!
WEnn KEINE unterordner kopiert werden sollen, so aufrufen: _DirToArchive("C:\Programme\7-Zip\, "C:\lol\lol.zip\, 0) !
#ce
#include <File.au3>
#include <Array.au3>
DIM $array
DIM $datein
;############Bereit machen für Funktionen###############
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]if FileExists(@ScriptDir & "\7z.exe") Then
FileCopy(@ScriptDir & "\7z.exe", @TempDir & "\7z.exe")
Endif
FileInstall("C:\Programme\7-Zip\7z.exe", @TEmpDir & "\7z.exe") ; wenn Compiled, wird 7z.exe ins TempDir geschoben
sleep(50)
if FileExists(@TEmpDir & "\7z.exe") Then ; sollte es nicht compiliert sein, oder einfach ein fehler, dann schau in der Registry ob installiert
;nix ;P
Else
$pfad = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip", "Path")
$check = FileCopy($pfad & "\7z.exe", @TempDir & "\7z.exe")
sleep(50)
If FileExists(@ScriptDir & "\7z.exe") AND if NOT FileExists(@tEmpDir & "\7z.exe")Then
FileCopy(@ScriptDir & "\7z.exe", @TempDir & "\7z.exe")
Else
MsgBox(0, "ERROR", "KONNTE 7z.exe nicht finden!")
Endif
EndIf
;####################Fertig für Funktionen###############
Func _ExtractAll($packed, $target)
FileWrite(@TEmpDir & "\7t.bat", "@Echo off" & @Crlf)
FileWrite(@TEmpDir & "\7t.bat", "7z.exe x -o"&$target&" " & $packed & @Crlf)
FileWrite(@TEmpDir & "\7t.bat", "exit" & @Crlf)
sleep(200)
Run(@TempDir & "\7t.bat", @TempDir)
EndFunc
Func _FileToArchive($path, $packed)
FileWrite(@TEmpDir & "\7z.bat", "@Echo off" & @Crlf)
FileWrite(@TEmpDir & "\7z.bat", "7z.exe a -tzip "& $packed &" " & $path & @Crlf)
Run(@TEmpDir & "\7z.bat", @tempdir)
EndFunc
Func _dirToArchive($dir, $packed, $sub = 1)
FileWrite(@TEmpDir & "\7a.bat", "@Echo off" & @Crlf)
if $sub <> 1 Then
FileWrite(@TEmpdir & "\list.txt", $dir & "\*.*")
Else
FileWrite(@TEmpdir & "\list.txt", $dir & "\*")
Endif
FileWrite(@TEmpDir & "\7a.bat", "7z.exe a -tzip "& $packed & " @list.txt")
Run(@TempDir & "\7a.bat", @TEmpDir)
sleep(10000)
FileDelete(@TempDir & "\*.bat")
EndFunc
Func _listArchive($packed)
sleep(500)
FileWrite(@TEmpDir & "\7w.bat", "@Echo off" & @Crlf)
FileWrite(@TEmpDir & "\7w.bat", "7z.exe l " & $packed &" >> " &@TempDir & "\archiv.txt")
sleep(100)
Run(@TEmpDir & "\7w.bat", @tempdir)
sleep(200)
_FileReadTOarray(@TempDir & "\archiv.txt", $array)
RETURN $array
EndFunc
FileDelete(@TempDir & "\*.bat")
[/autoit] [autoit][/autoit] [autoit]FileDelete(@TempDir & "\*.txt")
[/autoit]Mfg
Huggy
ps: kritik los!! ![]()