7
votes

décompresser un fichier en cacao

J'ai un fichier zippé, que je veux extraire le contenu de celui-ci. Quelle est la procédure exacte que je devrais faire pour y parvenir. Existe-t-il un cadre pour décompresser les fichiers dans le cadre de cacao ou l'objectif C.


1 commentaires

Désolé, je suis nouveau dans ce blog. Mais à l'avenir le fera.


7 Réponses :


1
votes

Essayez zip.framework .


0 commentaires

3
votes

Si vous voulez simplement décompresser le fichier, je vous recommanderais d'utiliser NSTASK pour appeler UNZIP (1). Il est probablement intelligent de copier le fichier sur un répertoire que vous contrôlez - probablement dans / TMP - avant de décompresser.


3 commentaires

Vous ne contrôlez pas / TMP, tout le monde peut y écrire.


Graham: Mais c'est un bon endroit pour faire du travail temporaire pour éviter de clocer un dossier existant.


Utilisez NSTEMPORARYDirectory () au lieu de / TMP , bien que vous soyez prudent, il se comporte un peu plus comme / var / tmp . Il sera nettoyé, mais ce n'est pas toujours à un redémarrage.



7
votes

Si vous êtes sur iOS ou que vous ne voulez pas utiliser NSTASK code> ou autre, je recommande ma bibliothèque SSZIPARCHIVE .

Utilisation: p>

NSString *path = @"path_to_your_zip_file";
NSString *destination = @"path_to_the_folder_where_you_want_it_unzipped";
[SSZipArchive unzipFileAtPath:path toDestination:destination];


2 commentaires

Pouvons-nous utiliser votre bibliothèque lors de la soumission de l'application sur l'Apple Store?


Est-il possible de bloquer les dossiers aussi?



6
votes

sur le Mac Vous pouvez utiliser l'outil de ligne omip intégré à l'aide d'un système NSTASK : xxx

c'est un rapide et Solution sale. Dans la vie réelle, vous voudrez probablement faire plus de vérification des erreurs et consulter le Unzip Manpage pour des arguments fantaisistes.


0 commentaires

2
votes

Voici une version plus concise basée sur l'approche de Codingfriend1

+ (void)unzip {
    NSString *targetFolder = @"/tmp/unzipped";
    NSString* zipPath = @"/path/to/my.zip";
    NSTask *task = [NSTask launchedTaskWithLaunchPath:@"/usr/bin/unzip" arguments:@[@"-o", zipPath, @"-d", targetFolder]];
    [task waitUntilExit];
}


0 commentaires

1
votes

-OpenFile: ( nsworkspace ) est le moyen le plus simple que je connaisse.


0 commentaires

4
votes

Voici une version Swift 4 Similaire à la réponse de Sven Driemecker. XXX

Cette implémentation renvoie une booléenne qui détermine si le processus a été réussi ou non. Considère que le processus a réussi, même si des avertissements ont été rencontrés.

La condition de retour peut être modifiée en retour process.terminationStatus == 0 pour ne même pas accepter les avertissements. < p> Voir DOCS DOCS pour plus de détails sur les diagnostics.

Vous pouvez également capturer la sortie du processus à l'aide d'une instance tuyau . xxx


0 commentaires