다음을 통해 공유


컨테이너: 복합 파일

이 문서에서는 복합 파일의 구성 요소 및 구현과 OLE 애플리케이션에서 복합 파일을 사용할 때의 장점과 단점을 설명합니다.

복합 파일은 OLE의 필수적인 부분입니다. 데이터 전송 및 OLE 문서 스토리지를 용이하게 하는 데 사용됩니다. 복합 파일은 활성 구조적 스토리지 모델의 구현입니다. 스토리지, 스트림 또는 파일 개체에 대한 serialization을 지원하는 일관된 인터페이스가 있습니다. 복합 파일은 Microsoft Foundation 클래스 라이브러리에서 클래스 및 COleDocument.에 의해 지원됩니다COleStreamFile.

참고 항목

복합 파일을 사용하는 것은 정보가 OLE 문서 또는 복합 문서에서 가져온 것임을 의미하지는 않습니다. 복합 파일은 복합 문서, OLE 문서 및 기타 데이터를 저장하는 방법 중 하나일 뿐입니다.

복합 파일의 구성 요소

복합 파일의 OLE 구현에서는 스트림 개체, 스토리지 개체 및 ILockBytes 개체의 세 가지 개체 형식을 사용합니다. 이러한 개체는 다음과 같은 방법으로 표준 파일 시스템의 구성 요소와 유사합니다.

  • 파일과 같은 스트림 개체는 모든 형식의 데이터를 저장합니다.

  • 디렉터리와 같은 스토리지 개체는 다른 스토리지 및 스트림 개체를 포함할 수 있습니다.

  • LockBytes 개체는 스토리지 개체와 실제 하드웨어 간의 인터페이스를 나타냅니다. 실제 바이트가 하드 드라이브 또는 전역 메모리 영역과 같이 개체가 액세스하는 스토리지 디바이스 LockBytes 에 기록되는 방식을 결정합니다. 개체 및 ILockBytes 인터페이스에 대한 LockBytes 자세한 내용은 OLE 프로그래머 참조를 참조하세요.

복합 파일의 장점 및 단점

복합 파일은 파일 스토리지의 이전 메서드에서 사용할 수 없는 이점을 제공합니다. 다음이 포함됩니다.

  • 증분 파일 액세스.

  • 파일 액세스 모드.

  • 파일 구조의 표준화입니다.

플로피 디스크의 스토리지와 관련된 큰 크기 및 성능 문제인 복합 파일의 잠재적 단점은 애플리케이션에서 사용할지 여부를 결정할 때 고려해야 합니다.

파일에 대한 증분 액세스

파일에 대한 증분 액세스는 복합 파일을 사용하는 자동 이점입니다. 복합 파일을 "파일 내의 파일 시스템"으로 볼 수 있으므로 스트림 또는 스토리지와 같은 개별 개체 형식은 전체 파일을 로드할 필요 없이 액세스할 수 있습니다. 이렇게 하면 애플리케이션이 사용자가 편집하기 위해 새 개체에 액세스해야 하는 시간을 크게 줄일 수 있습니다. 동일한 개념에 따라 증분 업데이트는 비슷한 이점을 제공합니다. 하나의 개체에 대한 변경 내용을 저장하기 위해 전체 파일을 저장하는 대신 OLE는 사용자가 편집한 스트림 또는 스토리지 개체만 저장합니다.

파일 액세스 모드

복합 파일의 개체 변경 내용이 디스크에 커밋되는 시기를 확인할 수 있는 것은 복합 파일을 사용하는 또 다른 이점입니다. 파일에 액세스하는 모드(트랜잭션 또는 직접)는 변경 내용이 커밋되는 시기를 결정합니다.

  • 트랜잭션 모드는 2단계 커밋 작업을 사용하여 복합 파일의 개체를 변경하므로 사용자가 변경 내용을 저장하거나 실행 취소하도록 선택할 때까지 문서의 이전 복사본과 새 복사본을 모두 사용할 수 있습니다.

  • 직접 모드는 나중에 실행 취소할 수 없는 문서 변경 내용을 통합합니다.

액세스 모드에 대한 자세한 내용은 OLE 프로그래머 참조를 참조 하세요.

표준화

복합 파일의 표준화된 구조를 사용하면 다른 OLE 애플리케이션이 실제로 파일을 만든 애플리케이션에 대한 지식 없이 OLE 애플리케이션에서 만든 복합 파일을 탐색할 수 있습니다.

크기 및 성능 고려 사항

복합 파일 스토리지 구조의 복잡성과 데이터를 증분 방식으로 저장하는 기능 때문에 이 형식을 사용하는 파일은 비정형 또는 "플랫 파일" 스토리지를 사용하는 다른 파일보다 큰 경향이 있습니다. 애플리케이션에서 파일을 자주 로드하고 저장하는 경우 복합 파일을 사용하면 파일 크기가 호환되지 않는 파일보다 훨씬 빠르게 증가할 수 있습니다. 복합 파일이 커질 수 있으므로 플로피 디스크에 저장되고 로드된 파일에 대한 액세스 시간도 영향을 받아 파일에 대한 액세스 속도가 느려질 수 있습니다.

성능에 영향을 주는 또 다른 문제는 복합 파일 조각화입니다. 복합 파일의 크기는 파일에서 사용되는 첫 번째 및 마지막 디스크 섹터 간의 차이에 따라 결정됩니다. 조각화된 파일에는 데이터를 포함하지 않지만 크기를 계산할 때 계산되는 여유 공간의 여러 영역이 포함될 수 있습니다. 복합 파일의 수명 동안 이러한 영역은 스토리지 개체를 삽입하거나 삭제하여 생성됩니다.

데이터에 복합 파일 형식 사용

파생된 COleDocument문서 클래스가 있는 애플리케이션을 성공적으로 만든 후 기본 문서 생성자가 호출EnableCompoundFile하는지 확인합니다. 애플리케이션 마법사가 OLE 컨테이너 애플리케이션을 만들 때 이 호출이 삽입됩니다.

OLE 프로그래머 참조에서 IStream, IStorageILockBytes를 참조하세요.

참고 항목

컨테이너
컨테이너: 사용자 인터페이스 문제
COleStreamFile 클래스
COleDocument 클래스