2009-08-13 17 views
0

Ich versuche, eine Adobe Air-Anwendung zu schreiben, die mehrere Dateien in ein Archiv komprimiert und dann dieses Archiv auf einen Webserver hochlädt. Momentan benutze ich die fzip-Bibliothek. Das Problem ist, dass fzip verlangt, dass ich die gesamte Datei in den Speicher lade, bevor ich sie in das Zip-Format serialisiere. Ich bin auf der Suche nach einem Beispiel für die Streaming-Dateikomprimierung in der Luft, damit ich die Speichermenge verwalten kann, die meine App zu einem bestimmten Zeitpunkt verwendet.Beispiel für Streaming-Komprimierung in Adobe Air

Antwort

1

Ich glaube, Sie müssten Ihren eigenen Kompressor von Grund auf neu schreiben. Die Methoden compress() & uncompress(), die in der AIR-API enthalten sind (von der fzip abhängt), funktionieren nur mit einem vollständigen ByteArray.

Sie könnten in Erwägung ziehen, die fzip-Quelle zu ändern, um jede Datei im Archiv zu "speichern" anstatt sie zu deflatieren. Sie würden keine Komprimierung erhalten, könnten aber fzip so ändern, dass sie von der Dateiquelle streamt, ohne die gesamte Datei vor der Komprimierung zu laden.