usar para descargar como archivos abrir objective-c ios zip unzip

objective c - para - descargar y descomprimir archivos en iOS



winrar para ipad (3)

Quiero descargar un archivo zip que contiene una carpeta con muchos archivos de audios que se usan para mi pronunciación en el diccionario. Utilizo ASIHTTPRequest para descargarlo y mi problema es "No sé cómo descomprimir ese archivo". Traté de usar SSZipArchive y SSZipArchive ambos están basados ​​en minizip pero obtuve un error cuando compilo el código. Undefined symbols for architecture i386: "_OBJC_CLASS_$_ZipArchive", referenced from: objc-class-ref in AppDelegate.o . Entonces podrías darme algunos consejos


En iOS6, un archivo ZIP parece manejarse como una carpeta. Tuve éxito simplemente haciendo lo siguiente:

[[NSFileManager defaultManager] copyItemAtPath:[NSURL URLForCachesDirectoryWithAppendedPath:@"ZIP_FILE.zip/Contents/Test.m4a"].path toPath:[NSURL URLForCachesDirectoryWithAppendedPath:@"Test.m4a"].path error:nil];

Puede haber una posibilidad de que incluso pueda hacer una lista de directorios para descomprimir archivos con contenido desconocido. Sin embargo, no conozco los archivos ZIP protegidos por contraseña.


He usado ZipArchive con éxito en el pasado. Es bastante ligero y fácil de usar, admite la protección con contraseña, múltiples archivos dentro de un ZIP, y también comprime y descomprime.

El uso básico es:

NSString *filepath = [[NSBundle mainBundle] pathForResource:@"ZipFileName" ofType:@"zip"]; ZipArchive *zipArchive = [[ZipArchive alloc] init]; [zipArchive UnzipOpenFile:filepath Password:@"xxxxxx"]; [zipArchive UnzipFileTo:{pathToDirectory} overWrite:YES]; [zipArchive UnzipCloseFile]; [zipArchive release];

más ejemplos sobre este paquete aquí

También probé SSZipArchive en algunos proyectos. Debajo de la línea se descomprimiría el archivo zip.

[SSZipArchive unzipFileAtPath:path toDestination:destination];


Para comenzar, en iOS 7, Apple introdujo la capacidad de comprimir / descomprimir archivos de forma nativa. También tiene la opción, envíe los archivos comprimidos a través de Mail, Messages, Airdrop y "Abrir en". La clave es: El archivo zip tiene que ser compatible con iOS Algunos son, y algunos no lo son. El primer paso: descubra si su archivo es compatible. Haga esto con una simple comprobación de su archivo recién guardado. Intenta abrirlo. Si está atascado en "Esperando ..." probablemente no sea compatible. Pruebe con una biblioteca diferente o use una solución si este es el caso.

Ahora, haciendo esto programáticamente, actualmente se requiere el uso de una biblioteca de terceros para guardar archivos comprimidos y extraerlos. Esto no es ideal, ya que muchas personas / compañías evitan usarlos. Dicho esto, la respuesta es correcta, ZipArchive es una gran herramienta de terceros, especialmente porque ahora es compatible con Swift. Recomendaría usarlo hasta que Apple presente una biblioteca nativa.