0

私は Objective-C の初心者で、あなたの助けが必要です。

iOS では、AES 256 メソッドを使用して暗号化されたファイルを解凍する必要があります。

この回答では、 https: //stackoverflow.com/a/10489305/2822169 Nathan Moinvaziri がこのライブラリの使用について書いています: https://github.com/nmoinvaz/minizip

私はこれをやろうとしています:

#import "unzip.h"

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path = [paths objectAtIndex:0];
    NSString *zipPath = [path stringByAppendingPathComponent:@"myFile.zip"];   // this file exists there 100%

    unzFile *uf = unzOpen64((__bridge const void *)(zipPath));  // but here uf returns 0x00000000
    unzOpenCurrentFilePassword(uf, (__bridge const void *)(@"myPassword"));
}

何が悪いのか教えてください。

ありがとう!

4

1 に答える 1

0

これはunZipに最適なライブラリかもしれません。

ダウンロードしてプロジェクトに追加すると、

#import "ZipArchive.h" // in your ".m" file

そして、次のコードを書きます

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];

NSString *basepath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"resources.zip"]];
    [self.responseData  writeToFile:basepath  atomically:YES];

    ZipArchive* za = [[ZipArchive alloc] init];
    if( [za UnzipOpenFile:[NSString stringWithFormat:@"%@",basepath]] )
    {
        BOOL ret = [za UnzipFileTo:[GeneralClass getDocumentDirectory]  overWrite:YES];
        if(!ret)
            NSLog(@"problem while loading data..");
        [za UnzipCloseFile];
    }

    NSFileManager *fileManager = [NSFileManager defaultManager];
    [fileManager removeItemAtPath:basepath error:NULL];

    basepath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"response.txt"]];
    NSString* response = [NSString stringWithContentsOfFile:basepath encoding:NSUTF8StringEncoding error:NULL];
    NSMutableDictionary *detailRequestData = [[NSMutableDictionary alloc] init];
    detailRequestData = [response JSONValue];
    [fileManager removeItemAtPath:basepath error:NULL];

 NSLog(@"I Got Data%@", detailRequestData); /// see in consol 
于 2013-09-27T06:46:25.163 に答える