2010-12-28 5 views
3

J'ai cherché à décompresser le fichier .zip qui est téléchargé dans le répertoire du document. mais je n'ai trouvé que des questions à leur sujet et je n'ai pas obtenu de réponse adaptée à ma requête. Tout le monde suggère de télécharger un fichier api appelé "MiniZip" et d'en faire usage. mais son code volumineux et ce code n'est pas nécessaire pour moi. Donc, ce serait formidable pour moi si je reçois moins de code pour décompresser le fichier et en faire usage. Son téléchargement à partir de l'url exactement comme il a été stocké mais je ne comprends pas comment décompresser et utiliser dans le répertoire des documents. quelqu'un peut m'aider s'il vous plaît en donnant un exemple de code ou en me suggérant ..Comment décompresser le fichier téléchargé dans le répertoire du document

Le code suivant est le code pour télécharger mon fichier zip en utilisant l'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]; 
} 

Répondre

2

Est-ce que MiniZip vous présente des problèmes de performances? Si ce n'est pas le cas, consultez le objective-zip.

+0

Salut Altealice, j'ai essayé avec minizip aussi, ce n'est pas donner de résultat pour moi .. je ne pouvais pas trouver même où j'obtiens ce problème. pouvez-vous s'il vous plaît me suggérer un autre moyen de le surmonter.? – raj

+0

Mon coéquipier était celui qui utilisait MiniZip, et ça fonctionne bien sur notre projet. Je ne connais pas les détails de la manière exacte dont il l'a utilisé. Peut-être que vous devriez essayer de lire quelques docs plus. – Altealice

+0

hey maintenant MiniZip travaillé wel pour moi ... merci beaucoup .......... – raj

Questions connexes