2010-12-28 2 views
3

문서 디렉토리에 다운로드 된 .zip 파일의 압축을 풉니 다. 하지만 난 그들에 대해서만 질문을 발견하고 내 질문에 어울리는 적절한 대답을 찾지 못했습니다.다운로드 한 파일을 문서 디렉토리에 압축 해제하는 방법

모든 사람이 "MiniZip"이라는 API 파일을 다운로드하여 사용하도록 제안합니다. 그러나 그것의 부피가 큰 코드와 그 많은 코드는 나를 위해 필요하지 않습니다. 그래서, 만약 내가 파일을 압축 해제하고 그것을 사용하는 코드를 좀 적게하면 정말 좋을 것입니다. 그것은 정확하게 그것이 저장되어 있지만 내가 문서 디렉토리에서 압축을 풀고 그것을 사용하는 방법을 얻지 못하는 것처럼 URL로부터 다운로드되는 것을 얻는다. 어느 누구든지 샘플 코드를 제공하거나 제안 해 주시면 저를 도와주세요.

다음 코드는 url을 사용하여 zip 파일을 다운로드하는 코드입니다.

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

답변

2

은 모든 당신에게 어떤 성능 문제를 제시 MiniZip합니까?

그렇지 않으면 objective-zip을 확인하십시오.

+0

안녕하세요 Altealice, 나 또한 어떤 결과를 내게주는 minizip와 함께 .. 나는 그 문제를지고 메신저를 찾을 수 없습니다. 그것을 극복하기 위해 나에게 다른 방법을 제안 해 주실 수 있습니까? – raj

+0

팀 동료가 MiniZip을 사용했으며 우리 프로젝트에서 잘 작동합니다. 나는 정확히 어떻게 그가 그것을 사용의 구체적인 모르겠다. 어쩌면 몇 가지 더 많은 문서를 읽으려고 노력해야합니다. – Altealice

+0

안녕하세요, 이제 MiniZip이 나를 위해 일했습니다 ... 감사합니다 .......... – raj

관련 문제