Je développe une application iOS, et en essayant de compresser le fichier que j'ai créé dans l'application, existe-t-il une fonction intégrée capable de faire cela?Comment puis-je créer un fichier zip en utilisant Objective C?
Répondre
Comme le souligne Alex, je répondu à this question en soulignant le NSData category contribué par les utilisateurs du wiki CocoaDev. Cette catégorie inclut des méthodes pour gérer les données zippées et gzippées dans une instance NSData (qui peuvent être lues à partir d'un fichier Zip ou écrites dans une instance). Cela devrait être tout ce dont vous avez besoin pour implémenter le fichier zip que vous décrivez, tant que vous pouvez alimenter vos données de fichier dans une instance NSData.
Pour un exemple de cette catégorie en action, veuillez consulter le code source de mon application iPhone, Molecules. Je n'utilise la méthode pour extraire des données à partir d'un fichier gzip (dans SLSMolecule + PDB.m), mais vous devriez être en mesure d'obtenir les concepts de base à partir de cela.
Le lien vers la catégorie NSData est rompu. –
@GlennHowes - Il est disponible dans les archives web ici: http://web.archive.org/web/20100102154917/http://cocoadev.com/index.pl?NSDataCategory, mais j'ai édité ma question plus ancienne pour inclure l'intégralité de la catégorie pour le préserver ici. –
Vous ne savez pas s'il existe une fonction intégrée, mais vous pourriez peut-être utiliser une bibliothèque externe telle que InfoZip. Ou bien vous pouvez essayer d'implémenter votre propre bibliothèque zip, je suis assez sûr que la spécification de format Zip peut être trouvée quelque part sur Internet.
RWendi
Je l'ai fait il. Pas de science de fusée, mais beaucoup d'ennui. –
d'abord vous téléchargez exemple Objective-zip de http://code.google.com/p/objective-zip/downloads/list
Dans cet exemple, Trouvez et copier trois dossiers Objective-Zip, faites glisser Minizip et ZLib à votre projet
classe import deux en vous .M classe "ZipFile.h" et "ZipWriteStream.h"
méthode de création de zip mon code est: -
-(IBAction)Zip{
self.fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory , NSUserDomainMask, YES);
NSString *ZipLibrary = [paths objectAtIndex:0];
NSString *fullPathToFile = [ZipLibrary stringByAppendingPathComponent:@"backUp.zip"];
//[self.fileManager createDirectoryAtPath:fullPathToFile attributes:nil];
//self.documentsDir = [paths objectAtIndex:0];
ZipFile *zipFile = [[ZipFile alloc]initWithFileName:fullPathToFile mode:ZipFileModeCreate];
NSError *error = nil;
self.fileManager = [NSFileManager defaultManager];
NSArray *paths1 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
self.documentsDir = [paths1 objectAtIndex:0];
NSArray *files = [[NSFileManager defaultManager]contentsOfDirectoryAtPath:self.documentsDir error:&error];
//for(NSString *filename in files){
for(int i = 0;i<files.count;i++){
id myArrayElement = [files objectAtIndex:i];
if([myArrayElement rangeOfString:@".png" ].location !=NSNotFound){
NSLog(@"add %@", myArrayElement);
NSString *path = [self.documentsDir stringByAppendingPathComponent:myArrayElement];
NSDictionary *attributes = [[NSFileManager defaultManager]attributesOfItemAtPath:path error:&error];
NSDate *Date = [attributes objectForKey:NSFileCreationDate];
ZipWriteStream *streem = [zipFile writeFileInZipWithName:myArrayElement fileDate:Date compressionLevel:ZipCompressionLevelBest];
NSData *data = [NSData dataWithContentsOfFile:path];
// NSLog(@"%d",data);
[streem writeData:data];
[streem finishedWriting];
}else if([myArrayElement rangeOfString:@".txt" ].location !=NSNotFound)
{
NSString *path = [self.documentsDir stringByAppendingPathComponent:myArrayElement];
NSDictionary *attributes = [[NSFileManager defaultManager]attributesOfItemAtPath:path error:&error];
NSDate *Date = [attributes objectForKey:NSFileCreationDate];
ZipWriteStream *streem = [zipFile writeFileInZipWithName:myArrayElement fileDate:Date compressionLevel:ZipCompressionLevelBest];
NSData *data = [NSData dataWithContentsOfFile:path];
// NSLog(@"%d",data);
[streem writeData:data];
[streem finishedWriting];
}
}
[self testcsv];
[zipFile close];
}
vos documents élément enregistré répertoire .png et les fichiers txt dans le dossier Bibliothèque zipping avec backup.zip J'espère que cela est aide
quoi de neuf auto testcsv ?? – chostDevil
Je recommande vraiment-Zip objectif. Il vient récemment déménagé à https://github.com/flyingdolphinstudio/Objective-Zip:
Quelques exemples de leurs documents:
Création d'un fichier Zip:
ZipFile *zipFile= [[ZipFile alloc] initWithFileName:@"test.zip" mode:ZipFileModeCreate];
Ajout d'un fichier dans un fichier zip:
ZipWriteStream *stream= [zipFile writeFileInZipWithName:@"abc.txt" compressionLevel:ZipCompressionLevelBest];
[stream writeData:abcData];
[stream finishedWriting];
Lecture d'un fichier à partir d'un fichier zip
:
ZipFile *unzipFile= [[ZipFile alloc] initWithFileName:@"test.zip" mode:ZipFileModeUnzip];
[unzipFile goToFirstFileInZip];
ZipReadStream *read= [unzipFile readCurrentFileInZip];
NSMutableData *data= [[NSMutableData alloc] initWithLength:256];
int bytesRead= [read readDataWithBuffer:data];
[read finishedReading];
Fonctionne bien dans Xcode 5.1 et iOS 7.1 –
N'oubliez pas de fermer le fichier par [zipfile close]; –
- 1. Comment créer un fichier zip en Java
- 2. déplacer fichier zip en utilisant fichier.copy()
- 3. Comment puis-je créer dynamiquement un fichier zip en utilisant PHP sous Linux?
- 4. Comment créer un fichier ZIP de mes builds Cruise Control?
- 5. Comment analyser un fichier texte en Objective-C?
- 6. Comment restaurer un fichier en utilisant C#?
- 7. Déplacer le fichier zip entre les serveurs utilisant C#
- 8. Renommer un fichier/dossier dans un fichier zip en Java?
- 9. Android: Comment décompresser un fichier zip crypté
- 10. Créer un mot de passe protégé zip en Java
- 11. Comment créer une méthode de classe allocator en Objective-C?
- 12. Comment créer un UITableView avec UIImages? - Cocoa/Objective-C
- 13. Comment inclure un fichier zip dans NSBundle?
- 14. comment créer un fichier .doc en utilisant java?
- 15. comment créer un nouveau fichier en utilisant python
- 16. Comment créer des fichiers ZIP avec un codage spécifique
- 17. Objective-C: Comment créer une classe avec un tableau 2d C en tant que champ?
- 18. comment télécharger un fichier en C# en utilisant webclient?
- 19. Comment créer un XTextTable dans OpenOffice.org uno en utilisant C#?
- 20. Comment créer un carrousel d'images dans C# en utilisant xna?
- 21. Comment puis-je ouvrir un fichier avec une extension non-zip en tant que fichier zip dans emacs?
- 22. Je n'arrive pas à créer un fichier CSV dans un fichier ZIP dans django
- 23. Comment créer un fichier texte temporaire en C++?
- 24. Comment créer un fichier Excel avec des feuilles en C#?
- 25. Comment créer un fichier correctement échappé: // URI en C#?
- 26. Comment définir les permissions (attributs) sur un fichier dans un fichier ZIP en utilisant le module zipfile de Python?
- 27. Comment passer plusieurs paramètres en Objective-C?
- 28. Comment filtrer un fichier en utilisant un modèle dans un autre fichier en utilisant Python?
- 29. Comment consommer un service Web en Objective-C?
- 30. Syntaxe pour créer un délégué View dans Objective-C
Qu'est-ce que vous en avez besoin? Juste compresser et envoyer un fichier quelque part? Si c'est le cas, vous pouvez utiliser le zlib qui est déjà inclus. –
S'il vous plaît vérifier votre réponse à [ici] [1] [1]: http://stackoverflow.com/questions/7386695/how-to-zip-file/18740716#18740716 – Nirmalsinh