Seite 10 von 37
Verfasst: 16.05.2007 21:25
von Thorsten1867
Forge hat geschrieben:Der Zipper hat nämlich einen Fehler. [. . . . .] Werde den Zipper (irgendwann mal) verbessern.
Im Hinblick auf deine Programmbeschreibung (siehe unten) wäre es eine gute Idee aus "irgendwann mal" vielleicht ein "möglichst schnell" zu machen. Den vermutlichen Grund für die fehlerhaften Dateien habe ich dir in diesem Thread schon gepostet und du kannst das Problem auch im englischen Forum nachlesen.
Forge hat geschrieben:InstallForge ist ein professioneller und leicht bedienbarer Setup-Creator für Windows, mit dem Sie in wenigen Minuten professionelle Installationspakete erstellen können.
Verfasst: 16.05.2007 21:37
von X0r
Wenn ich eine geeignete und freie ZipLib finde...
Verfasst: 16.05.2007 21:43
von Thorsten1867
Ich verwende "PureZip" von Gnozal und es funktioniert bei mir, wenn man das aktuelle Verzeichnis vorher festlegt.
Verfasst: 16.05.2007 21:45
von X0r
(Entfernt, da nicht mehr aktuell)
Verfasst: 16.05.2007 21:50
von Thorsten1867
Die Dateien sind im ZIP relativ gespeichert. Warum vorher das aktuelle Verzeichnis gesetzt sein muss, ist mir auch nicht ganz klar. Zumindest habe ich keine 0-Byte bzw. defekte Dateien im Archiv mehr.
Verfasst: 16.05.2007 21:54
von X0r
(Entfernt, da nicht mehr aktuell)
Verfasst: 16.05.2007 21:59
von Thorsten1867
Code: Alles auswählen
Procedure Add2ZIP(Path.s, SrcPart.s)
Protected dir.l, entry.s
If Not Right(Path, 1) = "\" : Path+"\" : EndIf
If Not Right(SrcPart, 1) = "\" : SrcPart+"\" : EndIf
dir = ExamineDirectory(#PB_Any, Path, "")
If dir
While NextDirectoryEntry(dir)
entry = DirectoryEntryName(dir)
If entry = "." Or entry = ".."
Continue
ElseIf DirectoryEntryType(dir) = #PB_DirectoryEntry_File
PureZIP_Archive_Compress(RemoveString(Path+entry, SrcPart), #True)
Else
Add2ZIP(Path+entry+"\", SrcPart)
EndIf
Wend
FinishDirectory(dir)
EndIf
EndProcedure
PackDatei$ = OutputDir$+ProgName$+".zip"
If FileExist(PackDatei$) : DeleteFile(PackDatei$) : EndIf
SetCurrentDirectory(SourceDir$)
If PureZIP_Archive_Create(PackDatei$, #APPEND_STATUS_CREATE)
Add2ZIP(SourceDir$, SourceDir$)
PureZIP_Archive_Close()
EndIf
SetCurrentDirectory(ProgDir$)
oder einzelne Dateien:
Code: Alles auswählen
PureZIP_AddFile(PackDatei$, ProgDir$+"Uninstall.exe", #PureZIP_DontStorePath)
Verfasst: 16.05.2007 22:09
von X0r
(Entfernt, da nicht mehr aktuell)
Verfasst: 16.05.2007 22:16
von Thorsten1867
Hast du schon mal das probiert:
oder
Code: Alles auswählen
PackDatei$ = "E:\Temp\Test.zip"
PureZIP_AddFile(PackDatei$, "C:\WINDOWS\NOTEPAD.EXE", #PureZIP_DontStorePath)
Verfasst: 16.05.2007 22:20
von X0r
(Entfernt, da nicht mehr aktuell)