Hi,
Unterordner werden mitgenommen. Allerdings noch nicht wenn diese leer sind. Im Moment also nur Ordner die auch wirklich was beinhalten.
Das Prinzip selber ist recht einfach:
Als erstes wird in eine Dateiliste erstellt. Dann werden alle Dateien in eine einzige Datei nacheinander angehängt. (Dabei wird jeweils der CRC-Wert berechnet, da die Daten später überprüft werden auf Fehler). Diese Werte werden anschließend ebenfalls angehängt. Als letztes wird noch ein Verzeichnisbaum erstellt und abgespeichert.
Die Daten-Datei wird nun
ZLib komprimiert.
Zum Schluß wird die Daten-Datei an die sfx.exe angehängt (welche wiederum per UPX komprimiert ist).
Beim extrahieren werden die Daten dekomprimiert und der Verzeichnisbaum und die CRC-Tabelle temporär extrahiert. Anschließend wird die Daten-Datei außeinandergenommen, wobei die Dateinamen lediglich von der Verzeichnisbaum Datei bestimmt werden. Jede Datei wird hier nochmal CRC-überprüft und gegebenenfalls erhält der Anwender einen Fehler.
viele Grüße
Stephan