1

私はドキュメントフォルダのzipファイルを作成していますzipからsqliteファイルを削除する方法を知りたいのですが、zip内の他のファイルが必要ですが、ドキュメントフォルダディレクトリによって保持されているすべてのファイルをzipに保存します。zipファイル内のsqliteファイルは必要ありません

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:@".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];      
        }
    }
    BOOL successCompressing = [archiver CloseZipFile2];
    if(successCompressing)
        NSLog(@"Success");
    else
        NSLog(@"Fail");





    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;




    NSString *emailBody =@""; 
    [picker setMessageBody:emailBody isHTML:NO];

    [picker addAttachmentData:myData mimeType:@"" fileName:@"Document.Zip"];
4

1 に答える 1

0

あなたがすることは、dataWithContentsOfFile: で NSData オブジェクトを作成し、zip アーカイブへのパスを指定してから、MIME タイプを application/zip に設定することです。

于 2012-06-04T06:24:29.013 に答える