문제

Apple은 IWWORT 애플리케이션에서 문서 패키지 (파인더에서 단일 파일로 표시되는 폴더)를 대체하기 위해 Zip Archives를 사용하기 시작했습니다. Windows Fileserver에 복사 할 때 문서 패키지와 관련된 지원 이메일을 계속받는 것과 동일한 작업을 고려하고 있습니다.

내 질문은 NSDocument 기반 응용 프로그램 에서이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

가장 쉬운 방법은 디렉토리 파일 래퍼를 만들고 아카이브를 만들고 nsdocument 's에서 반환하는 것입니다.

- (NSFileWrapper *)fileWrapperOfType:(NSString *)typeName error:(NSError **)outError

그러나 나는 nsfilewrapper의 zip 아카이브를 만드는 방법을 이해하지 못합니다.

도움이 되었습니까?

해결책

zip 파일을 형식으로 만들려면 형식 (예 : "Mydoc.myextension"이 실제로 zip 파일입니다). 이 Google 코드 프로젝트를 살펴보십시오. ziparchive 그래도 파일 래퍼가 도움이 될 것이라고 믿지 않습니다.

iWork를 인용했기 때문에 iWork 09를 소유하고 있지 않지만 이전 버전은 패키지 형식 (예 : NSFileWrapper가 이상적)을 사용하지만 첨부 파일 (예금 미디어, 이미지 등 등)을 유지하면서 문서의 구조를 설명하는 XML을 지퍼합니다. ) 리소스 폴더에서 모두 패키지 내에 있습니다. XML은 크고 복잡한 문서에 대해 상당히 커질 수 있지만 텍스트이기 때문에 잘 압축됩니다. 이로 인해 전체적인 작은 문서가 발생합니다.

실제로 Apple이 전체 문서를 하나의 큰 zip 아카이브를 하나로 만들기 위해 옮겼다면 (홀수를 찾을 수 있음), 임시 폴더에 필요한 리소스를 추출하거나 모든 것을 메모리에로드하는 것입니다 (패키지에서 단계적으로 뒤로 물러서서- 기반 접근법, IMO). 이것들은 당신이 고려해야 할 고려 사항입니다.

다른 팁

파일 래퍼에서 데이터를 가져 와서 다음과 같은 것으로 공급하고 싶을 것입니다. ziparchive.

Pierre-Olivier Latour는 Zip 압축을 다루는 NSData에 확장을 작성했습니다. 여기에서 얻을 수 있습니다. http://code.google.com/p/polkit/

나는 이것이 파티에 조금 늦었다는 것을 알고 있지만이 게시물을 방문하는 사람을 도울 수있는 또 다른 링크를 제공 할 것이라고 생각했습니다.

Apple의 Zipbrowser 샘플이 좋은 출발 일 것 같습니다. http://developer.apple.com/library/mac/#samplecode/zipbrowser/introduction/intro.html

HTH

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top