2012-11-19 2 views
0

종종 zip 서명이있는 파일 유형이 있지만 압축 된 아카이브가 아니거나 단순히 zip 파일이 아닙니다. 일반적으로 압축 된 아카이브처럼 서명 된 파일이 있지만 실제로는 사용자 정의 데이터 세트의 컨테이너입니다.데이터 용 컨테이너로 zip을 어떻게 사용할 수 있습니까?

예를 들어 .blend 파일이나 .apk를 보관 유틸리티로 열 수 있습니다.

프로그래밍 방식을 사용하면 새 파일 형식을 만들고 zip을 컨테이너로 사용하는 것에 대한 모든 복잡한 비트를 피하면서 자신 만의 새로운 파일 형식 정의를 만들 수 있습니까?

저는 C/C++ 프로그래밍에 관심이 있습니다.


편집 :

나는 또한 내가 인코딩 및 데이터 표현에 대한 것과 같은 플랫폼 관련 문제를 방지하기 위해 용기에 대해서 이야기하고 있다는 사실을 강조하고 싶습니다.

+3

AFAIK, .apk _is zip 파일. 적어도 zip의 컨테이너 형식은 여러 파일을 묶는 데 사용됩니다. 추가로 압축을 사용할 수 있는지 확실하지 않습니다. – Andy

+0

@Andy 제 생각은 압축 알고리즘에 관심이 없기 때문에 여러 파일을 번들로 묶어서 보관 파일에 맞춤 구조를주고 싶습니다. – user1824407

+0

[zlib] (http://www.zlib.net)을 사용하는 방법을 묻고 있습니까? – nurettin

답변

1

다른 파일 확장명을 가진 zip 파일 (afaik는 .APK 파일에 사용되는 전술)과 정확히 같은 것을 만드는 방법을 묻는 것으로 의심됩니다.

당신이 그렇지 않은 경우와 정확히 똑같이 하나 만들고 자신의 확장명으로 파일 이름을 사용하는 것이 간단한 대답입니다. 주석에서 언급했듯이 여러분이 사용할 수있는 zip 파일을 만들고 처리하기위한 다양한 라이브러리가 있습니다.

이 파일은 아카이브 유틸리티에서 열 수 있지만 기본적으로 시스템의 다른 작업과 연결됩니다 (APK는 설치와 관련되어 있고 .blend는 블렌더와 연결되어 있음).

이 기술은 매우 일반적이며 많은 일반적인 응용 프로그램 파일 형식은 압축 된 파일 모음과 함께 제공되는 표준 색인 파일에 불과합니다.

인코딩 문제에 대한 @Jan Hudec의 의견을 참고하십시오.이 경로를 벗어날 수 없습니다.

인코딩시 : (이 문제에 대한 새롭고 다른 질문을 던지십시오. 많은 사람들이 나보다 실용적인 지식이 더 많을 것입니다.) 잠재적으로 이기종 시스템에 대해 정확히 동일한 데이터를 얻고 싶다는 것을 언급했습니다. 나는 당신이 텍스트 인코딩을 사용해야한다고 생각한다 : C 코드가 다른 시스템에서 컴파일 된 후에 타입 길이, 정렬 또는 표현이 동일하다는 보장이 없으므로 바이너리 블럭을 단순히 쓰는 것은 그리 신뢰할 만하지 않다. 텍스트 인코딩에 대한 문자 집합을 선택할 때 가능한 한 구체적입니다. 다른 시스템에서 문자 집합을 정확하게 일치시킬 수 있습니다.

+0

그래서 zip 라이브러리를 사용하는 것 이상의 것이 있습니까? 엔코 딩과 관련된 문제를 어떻게 해결할 수 있습니까? 바이너리 인코딩이나 텍스트 인코딩을 사용하는 것이 좋습니다. – user1824407

+0

인코딩 관련 지식의 한계에 대한 나의 답변을 편집했습니다. – Elemental

+0

오케이, 고마워. – user1824407

관련 문제