Ho trovato un paio di librerie (LiteZip e ZipArchive) che consentono di decomprimere i file su iPhone. Ma entrambi richiedono un input come file. Esiste una libreria che consente di decomprimere direttamente NSData contenente i dati archiviati tramite zip senza scriverlo in un file temporaneo?
Ho provato ad adottare le librerie citate sopra per questo, ma senza successo fino ad ora.Decomprimere NSData senza file temporaneo
risposta
Da quello che ho capito, il formato zip memorizza i file separatamente e ogni file memorizzato viene compresso utilizzando un algoritmo di compressione (generalmente è l'algoritmo DEFLATE).
Se siete interessati solo a dati di decompressione che è stato compresso utilizzando l'algoritmo DEFLATE si potrebbe usare questo zlib addition to NSData da Google Toolbox For Mac
Non ha bisogno di file temporanei.
Poiché i file negli archivi zip sono archiviati singolarmente e nella loro gerarchia di cartelle originale, dovrebbe essere possibile estrarre un oggetto NSData semplicemente passando un percorso (relativo alla radice dell'archivio zip), giusto? – avocade
In this answer a this question, faccio notare il wiki di CocoaDev category on NSData che aggiunge il supporto zip/unzip a quella classe. Questo ti permetterebbe di farlo interamente in memoria.
Questa categoria aggiunge il supporto gzip/zlib, non il formato zip effettivo (che comunque non può essere decompresso in un singolo oggetto NSData che non può rappresentare la struttura file/directory). –
Perché non si desidera utilizzare un file temporaneo? In che forma vuoi i dati non compressi? Sono alcuni dati zippati effettivi che hai nel tuo NSData? –
Ho un file zip crittografato. Lo decrypt in memoria a NSData e poi voglio decomprimerlo direttamente. – Vladimir
Una volta ho scritto esattamente ciò di cui hai bisogno (ad eccezione del supporto per la crittografia). E 'stato abbastanza facile e realizzato in poche ore. Sfortunatamente, non ho più accesso al codice. Quindi perché non ne scrivi uno da zero (con l'uso di zlib)? Il file ZIP è un formato di file piuttosto semplice. – Codo