12
votes

iPhone: Téléchargement zip et extraire dans le sous-répertoire de paquet principal au moment de l'exécution

Je veux prolonger mon application iPhone que l'application télécharge un fichier zip dans Un serveur sous-répertoire l'extrait puis d'extraire puis chargez des images qui se trouvaient à l'intérieur du zip.

Des idées Comment décompresser dans le temps d'exécution et l'accès des images? Serait vraiment heureux pour une idée.

salutations,


1 commentaires

Le paquet principal est en lecture seule. Vous ne pouvez pas extraire un fichier à celui-ci, mais vous pouvez utiliser un répertoire local comme le répertoire de documents.


4 Réponses :


9
votes

Vous ne pouvez pas extraire dans votre paquet. Utilisez [NSSSEARCHPATHFORDERIDOMADOMAINES (NSDOCumentDirectory, NSUserDomainmask, Oui) ObjectAindex: 0] Pour obtenir le chemin d'accès à un répertoire, vous pouvez écrire à.

Vous pouvez utiliser le code de http://code.google.com/p/ziparchive/ à extraire fichiers de l'archive zip.


1 commentaires

puis-je utiliser zipararchive pour iOS 6



20
votes

J'ai utilisé ZipRarchive avec succès dans le passé.

C'est assez ligtheweight et simple à utiliser, prend en charge la protection par mot de passe, plusieurs fichiers à l'intérieur d'un zip, ainsi que compressez et décompressez. P>

L'utilisation de base est la suivante: p>

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];


4 commentaires

Comment vérifier si le fichier est protégé par mot de passe ou non, cela prend-il en charge que


Ceci est basé sur obj C ++, puis-je obtenir une version obj C afin que je n'ai pas à utiliser le compilateur Obj C ++?


@Rog puis-je utiliser ziparchive pour iOS 6


Je n'ai pas pu obtenir mon application pour construire avec ceci, j'ajoute libz.1.2.5.dyLib, mais cela ne fonctionne pas, quels cadres importaient-vous?



3
votes

Si vous ajoutez ziparaRarchive à votre projet, n'oubliez pas d'ajouter le cadre. Le cadre correct est libz.dylib . la dernière version (xcode 4.2) est de 1,2,5 .

(Ajouter un cadre à la section avec des bibliothèques dans l'onglet Phases de construction de votre cible.)


0 commentaires

2
votes

Je vous suggère d'utiliser ssziparchive BCOZ Il prend en charge les deux arc et < code> non arc projet.

  1. Ajouter ssziparchive.h , ssziparchive.m et minizip à votre projet.
  2. Ajouter la dernière version du libz (à l'heure actuelle son libz1.2.5 ) bibliothèque à votre cible.

    Vous n'avez pas besoin de faire quoi que ce soit concernant arc . ssziparchive détectera si vous n'utilisez pas arc et ajoute le code de gestion de la mémoire requis.

    et le code sera comme ceci: xxx


5 commentaires

Belle réponse vraiment utile, merci +1


Si le fichier ".zip" dans le serveur, comment utiliser la bibliothèque SSZIPARCHIVE. S'il vous plaît laissez-nous savoir


@JOSHKETHEPALLI Dans ce cas, vous devez d'abord télécharger le fichier ZIP dans la section locale et l'extraire, sans fichier zip original dans le stockage local, vous ne pouvez pas l'extraire.


Lorsque j'ai extraire le fichier, il affiche le format ".dat". Comment extraire le fichier identique comme un dossier normal


@Joshkethepalli Pouvez-vous vérifier votre zip, que ce n'est pas corrompu après le téléchargement.