2009-11-13 5 views
10

iPhone에서 파일의 압축을 풀 수있는 몇 개의 라이브러리 (LiteZipZipArchive)를 발견했습니다. 하지만 둘 다 파일로 입력해야합니다. 임시 파일에 쓰지 않고 zip으로 압축 된 데이터가 포함 된 NSData를 직접 압축 해제 할 수있는 라이브러리가 있습니까?
나는 위에서 언급 한 libs를 채택하려했지만 지금까지 성공하지 못했습니다.임시 파일없이 NSData 압축 풀기

+1

왜 임시 파일을 사용하지 않으시겠습니까? 어떤 형식으로 압축되지 않은 데이터를 원하십니까? NSData에 가지고있는 실제 압축 데이터입니까? –

+0

암호화 된 zip 파일이 있습니다. 메모리에서 NSData로 해독 한 다음 직접 압축을 풀고 싶습니다. – Vladimir

+0

나는 (암호화 지원을 제외하고) 당신이 필요로하는 것을 정확히 한 번 썼다. 그것은 꽤 쉽고 몇 시간 만에 실현되었습니다. 불행히도 더 이상 코드에 액세스 할 수 없습니다. 그렇다면 처음부터 zlib을 사용하여 작성하지 않으십시오. ZIP 파일은 비교적 쉬운 파일 형식입니다. – Codo

답변

0

내가 이해하는 바로는 zip 형식은 파일을 개별적으로 저장하며 각 저장된 파일은 압축 알고리즘 (일반적으로 DEFLATE 알고리즘)을 사용하여 압축됩니다.

당신은 그것은 임시 파일이 필요하지 않습니다이 zlib addition to NSDataGoogle Toolbox For Mac
에서 사용할 수있는 DEFLATE 알고리즘을 사용하여 압축 된 그 데이터를 압축 해제에만 관심이 있다면.

+1

zip 아카이브의 파일은 개별적으로 압축되어 저장되므로 원본 폴더 계층 구조에서 패스 (zip 아카이브의 루트에 상대적인 경로)를 단순히 통과하여 NSData 오브젝트를 추출 할 수 있어야합니다. 맞습니까? – avocade

1

this answer에서 this question까지 나는이 클래스에 zip/unzip 지원을 추가 한 CocoaDev 위키 category on NSData을 지적합니다. 이렇게하면 전적으로 메모리에서이 작업을 수행 할 수 있습니다.

+1

이 범주는 실제 zip 형식이 아닌 gzip/zlib 지원을 추가합니다 (그런데 파일/디렉토리 구조를 나타낼 수없는 단일 NSData 객체로 압축 해제 할 수 없음). –

관련 문제