8
votes

Comment glisser des dossiers dans iPhone sdk?

Dans ma candidature, je prends des captures d'écran de la vue Image, puis je sauve les coups d'écran dans le dossier de documents de l'application.Now Je souhaite envoyer toutes ces images avec la même structure de dossiers. contenant les images puis la fixation du fichier zip au courrier résoudra le problème, mais comment puis-je passer ces dossiers et ensuite les attacher au courrier?

Toute aide est appréciée!


1 commentaires

Peut-être consulter ce moyen intégré pour créer un fichier zip: Stackoverflow.com/a/32723162


5 Réponses :


1
votes

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

C'est assez ligtheweight et simple à utiliser, prend en charge la protection des mots de passe, plusieurs fichiers à l'intérieur d'une fermeture à glissière, ainsi que la compresse et la décompression. p>

L'utilisation de base est la suivante: p>

           BOOL ret = [zip CreateZipFile2:l_zipfile];
            // OR
            BOOL ret = [zip CreateZipFile2:l_zipfile Password:@"your password"]; //
            //if the Password is empty, will get the same effect as [zip CreateZipFile2:l_zipfile];

            ret = [zip addFileToZip:l_photo newname:@"photo.jpg"];
            if( ![zip CloseZipFile2] )
            {
                    // error handler here
            }
            [zip release];


4 commentaires

Merci pour votre réponse.J'ai comment décompresser le contenu d'un fichier zip et j'ai lu la documentation sur Google.Mais, je ne comprends pas comment créer un nouveau fichier ZIP et ajouter des éléments.


Merci ... pouvez-nous ajouter deux fichiers dans la même zone zip.i.f.fr nous appelons [zip AddFileTozip: l_photo newname: @ "photo.jpg"]; Pour plusieurs fichiers? Quand j'ai essayé qu'il a fini avec un seul fichier dans Zip.


au lieu de donner un seul fichier à chaque fois. Mettez tous vos fichiers dans un dossier et donnez le chemin de répertoire afin que l'autol complet avec des images soit zippée.


Je pense que ça ne marche pas sur les dossiers. Je l'ai essayé? Je l'ai essayé sur le dossier sans chance.Eally voulait de l'aide ...



2
votes

ZipRarchive est une classe Objective-C à compresser ou à décompresser des fichiers zip, qui est basé sur le code open source "Minizip".

Il peut être utilisé pour le développement d'applications iPhone et Cocoa sur Mac OSX également.

Voir ceci: http://code.google.com/p/ziparchive/downloads / List


0 commentaires

2
votes

Pour créer un fichier ZIP Vous pouvez utiliser ziparchive Téléchargez le code source et ajoutez-le à votre projet, ajoutez également libz.x.dylib (jetez un coup d'œil sur wiki).

Dans votre fichier d'en-tête Ajouter: #Import "ZipRarchive / zipArchive.h"

Pour créer un fichier ZIP est simple, utilisez simplement le code suivant: xxx


1 commentaires

Il ne forme que tout le document contient dans un fichier de format zip mais il ne réduit pas la taille du fichier zip. Comment pouvons-nous réduire la taille du fichier zip? S'il vous plaît guide. Merci d'avance.



19
votes

J'ai utilisé ce code pour créer un fichier ZIP du répertoire de documents de mon application et il a fonctionné

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory = [paths objectAtIndex:0];
BOOL isDir=NO;
NSArray *subpaths;
NSString *exportPath = docDirectory;
NSFileManager *fileManager = [NSFileManager defaultManager];    
if ([fileManager fileExistsAtPath:exportPath isDirectory:&isDir] && isDir){
    subpaths = [fileManager subpathsAtPath:exportPath];
}

NSString *archivePath = [docDirectory stringByAppendingString:@"/test.zip"];

ZipArchive *archiver = [[ZipArchive alloc] init];
[archiver CreateZipFile2:archivePath];
for(NSString *path in subpaths)
{
    NSString *longPath = [exportPath stringByAppendingPathComponent:path];
    if([fileManager fileExistsAtPath:longPath isDirectory:&isDir] && !isDir)
    {
        [archiver addFileToZip:longPath newname:path];      
    }
}

if([archiver CloseZipFile2])
    NSLog(@"Success");
else
    NSLog(@"Fail");


3 commentaires

Je ne suis pas capable de cibler des fichiers à partir d'un périphérique iPhone, je ne sais pas pourquoi ses œuvres de codage identiques dans iPhone simulator, mais pas dans l'appareil iPhone, veuillez me guider


La plus grande différence entre le simulateur et le périphérique est que, dans l'appareil, tous les chemins sont sensibles à la casse, dans le simulateur no. Peut-être que c'est la raison pour laquelle cela fonctionne dans un et non dans l'autre.


Merci..it travaillé pour moi .. mais si je chiffre mon fichier XML avec Rnencryptor avant de le faire zipper, cela ne fonctionne pas .. une solution .???



1
votes

Mode Easy: Ajouter ZipRarchive à votre projet ALORS:

NSString* zip = ...;
NSString* dir = ...;
[SSZipArchive createZipFileAtPath: zip withContentsOfDirectory: dir];


0 commentaires