€€: 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!!