Seite 2 von 3

Re: ZIP MIME-Type hinzufügen

Verfasst: 07.02.2014 15:33
von ts-soft
Die mimedatei darf nicht im Header auftauchen, das wird wohl immer der fall sein, wenn man eine Datei zu einem
Archiv hinzufügt.
EPUB Open Container Format hat geschrieben:The mimetype file additionally must be neither compressed nor encrypted, and there must not be an extra field in its ZIP header.
Ich denke mal, die Zipfunktionen in PB sind für Dein vorhaben ungeeignet.

Gruß
Thomas

Re: ZIP MIME-Type hinzufügen

Verfasst: 07.02.2014 16:09
von Sebastian
Ja aber... hmm. Warum kann ich nicht die fertige zip-Datei nehmen und die mimetype-Datei als Hex-Code einfach in die ZIP-Datei schreiben. Dann ist sie doch unkomprimiert?

Re: ZIP MIME-Type hinzufügen

Verfasst: 07.02.2014 16:18
von ts-soft
Dann verschieben sich doch die anfangspunkte der einzelnen komprimierten Dateien und können wohl nicht mehr gefunden werden. Den Header müßtest Du auch manipulieren, wobei es wahrscheinlich ausreicht, den Wert im Zentral-Header zu
erhöhen, damit das erste Archiv gefunden wird.

Re: ZIP MIME-Type hinzufügen

Verfasst: 07.02.2014 16:29
von Sebastian
Genau das habe ich versucht...

Re: ZIP MIME-Type hinzufügen

Verfasst: 07.02.2014 16:31
von NicTheQuick
Was verstehst du eigentlich unter Hex-Code? Machst du aus der originalen MIME-Datei eine Hex-Datei, also eine String, der nur aus 0-9 und A-F besteht und versuchst den irgendwie in die schon gepackte ZIP-Datei zu integrieren? Das kann wohl kaum gut gehen. ;)

PS.: Schon meine private Nachricht gesehen?

Re: ZIP MIME-Type hinzufügen

Verfasst: 07.02.2014 16:45
von Sebastian
Nein. Das ist mir ja klar. Ich habe einfach eine valide EPUB-Datei genommen und die entsprechenden Teile kopiert. Dann natürlich noch den Offset und die Größe korrigiert und.. naja.. es geht eben nicht. Sobald man eine Datei mit 7zip einfügt, wird der Header mit dem mimetype übrigens auch überschrieben...
Nebenbei: Ein weiteres Problem. Wie legt man ein Verzeichnis mit der Packer-Library in der ZIP-Datei an? Wenn ich "/Verzeichnis/Datei.end" angeben, dann scheint es nicht richtig zu funktionieren. Mit Windows geöffnet erscheint die Datei leer. Der Hex-Editor zeigt, dass etwas in der Datei ist und in der Ansicht von 7-Zip sieht man ein Verzeichnis ohne Namen und in diesem ist dann das Verzeichnis /Verzeichnis/Datei.end :freak:
Also diese Pack-Bibliothek ist doch Murks... :twisted: Oder ich bin einfach doof... :oops:

Re: ZIP MIME-Type hinzufügen

Verfasst: 07.02.2014 16:54
von ts-soft
Wegem leerem Ordner:
siehe: http://www.purebasic.fr/english/viewtop ... 60#p400660

Ansonsten habe ich noch eine einfach Procedure um das zu bewerkstelligen (Crossplattform), die
könnte ich bei Bedarf später auch noch posten (habe ich hier unter linux nicht zur Verfügung).

Gruß
Thomas

Re: ZIP MIME-Type hinzufügen

Verfasst: 07.02.2014 17:14
von Sebastian
Irgendwie schaffe ich es heute wohl nicht, mich deutlich auszudrücken... :roll:
Ich möchte kein leeres Verzeichnis erstellen. Ich möchte aber ein Verzeichnis mit einer Datei darin erstellen, nur leider gibt sich hier die Packer-Library überfordert. Oder mache ich da etwas falsch? Es werden einfach keine Verzeichnisse im Root erstellt, sondern in einem Unterverzeichnis, das ohne Namen ist.

Re: ZIP MIME-Type hinzufügen

Verfasst: 07.02.2014 17:33
von ts-soft
Verzeichnis wird hier problemlos erstellt, lediglich "If PackEntryType(0) = #PB_Packer_Directory" wird nicht erkannt.

Ich hoffe, Du weißt, das die verwendete libzip alle Änderungen erst bei ClosePack() schreibt!.

Re: ZIP MIME-Type hinzufügen

Verfasst: 07.02.2014 17:44
von Sebastian
Ja, Änderungen erst nach ClosePack... okay. Das habe ich nicht gewusst, aber ich habe den Befehl verwendet.
Wenn ich den folgenden Code ausführen und die Datei unter Windows öffne, dann sieht man nichts... ein leeres Verzeichnis.

Code: Alles auswählen

UseZipPacker()
CreatePack(0,"testpaket.zip",#PB_PackerPlugin_Zip)
AddPackFile(0,GetCurrentDirectory()+"test.txt","/Texte/test.txt")
ClosePack(0)