Как разархивировать загруженный файл в каталог документов - PullRequest
3 голосов
/ 28 декабря 2010

Я искал распаковку файла .zip, который загружается в каталог документов. но я нашел только вопросы о них, и я не получил ни одного подходящего ответа, который бы соответствовал моему запросу.

Каждый предлагает скачать файл API под названием «MiniZip» и использовать его. но его громоздкий код и такой большой код мне не нужны. Поэтому было бы здорово, если бы я получил немного кода, чтобы распаковать файл и использовать его. Он загружается из URL точно так же, как он был сохранен, но я не понимаю, как распаковать и использовать его в каталоге документов. Может ли кто-нибудь помочь мне, дав пример кода или предложив мне ..

Следующий код является кодом для загрузки моего zip-файла с использованием URL.

-(IBAction)download:(id)sender{

    NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://some url contains .zip file"]  cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];                                                                        
    NSURLConnection  *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

    if (theConnection) {
        // Inform the user that the download failed.
        recievedData=[[NSMutableData data ]retain];

    //  [recievedData writeToFile:path atomically:YES];
        NSLog(@"download ");
    }
    else {
        NSLog(@"download fail");
    }
}


-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{

        [recievedData setLength:0];
    }

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{

    [recievedData appendData:data];
}

- (void)connection:(NSURLConnection *)connection
  didFailWithError:(NSError *)error
{
        [connection release];

    [recievedData release];

    // inform the user
    NSLog(@"Connection failed! Error - %@ %@",
          [error localizedDescription],
          [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
}



- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    // do something with the data
    // receivedData is declared as a method instance elsewhere
    NSLog(@"Succeeded! Received %d bytes of data",[recievedData length]);

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

    NSString *path=[documentsDirectory stringByAppendingPathComponent:@"books"];
    NSLog(@"value of the path is:%@",path);
    [recievedData writeToFile:[path stringByAppendingPathComponent:@"file"] atomically:YES];

    [connection release];
    [recievedData release];
}   

1 Ответ

2 голосов
/ 28 декабря 2010

Есть ли у MiniZip какие-либо проблемы с производительностью?

Если это не так, проверьте goal-zip .

...