2010-12-28 1 views
3

Ich suchte nach dem Entpacken der ZIP-Datei, die im Dokumentverzeichnis heruntergeladen wird. aber ich fand nur Fragen über sie und ich bekam keine passende Antwort, die meiner Frage entspricht.So entpacken Sie die heruntergeladene Datei im Dokumentverzeichnis

Jeder schlägt vor, eine API-Datei namens "MiniZip" herunterzuladen und davon Gebrauch zu machen. Aber sein sperriger Code und so viel Code wird für mich nicht benötigt. Es wäre also gut für mich, wenn ich weniger Code bekomme, um die Datei zu entpacken und zu nutzen. Es wird von der URL heruntergeladen, genauso wie es gespeichert wurde, aber ich bekomme nicht, wie man es entpackt und im Dokumentenverzeichnis benutzt. kann jemand bitte mir helfen, indem er etwas Beispielcode gibt oder mich vorschlägt.

Der folgende Code ist der Code, um meine Zipdatei unter Verwendung der URL herunterzuladen.

-(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]; 
} 

Antwort

2

Bietet MiniZip überhaupt irgendwelche Leistungsprobleme an?

Wenn nicht, dann überprüfen Sie objective-zip.

+0

Hallo Altealice, ich habe versucht mit Minizip auch, es gibt kein Ergebnis für mich .. ich konnte nicht finden, wo ich das Problem bekommen. Kannst du mir bitte einen anderen Weg vorschlagen, es zu überwinden? – raj

+0

Mein Teamkollege war derjenige, der MiniZip verwendet hat, und es funktioniert gut in unserem Projekt. Ich weiß nicht genau, wie genau er es benutzt hat. Vielleicht sollten Sie versuchen, ein paar weitere Dokumente zu lesen. – Altealice

+0

hey jetzt MiniZip hat für mich gearbeitet ... danke alottt .......... – raj