word和excel等檔案均稱為復合檔案。這類檔案內部有乙個「檔案系統」,採用「磁碟檔案」的組織方式來組織檔案內的資料,也稱為「檔案中的檔案系統」。
每個復合檔案中有乙個「根儲存」(類似於檔案系統中的「根目錄」),根儲存之下是若干「子儲存」(類似於「子目錄」)和「資料流」(類似於「檔案」),子儲存之下可以再有子儲存和資料流……。
下列**可將任一復合檔案的檔案結構進行列舉,如配合樹型控制項(如:ctreectrl),可將檔案的儲存結構清晰的展現出來。
#include
<
atlconv.h
>
void
docfileviewer(lpctstr lpszpathname)
hr =
::stgopenstorage(
//開啟復合檔案
lpwfilename,
//檔名稱
null,
stgm_readwrite
|stgm_direct
|stgm_share_exclusive,0,
0,&pstg);
//得到根儲存介面指標
enumstorage(pstg);
//開始列舉
if(pstg)
//com 釋放
//如果使用了afxoleinit(),則無需呼叫該函式
::couninitialize();
}void
enumstorage(istorage
*pstg)
enumstorage(pstgsub);
//遞迴枚舉子儲存
break
;case
stgty_stream:
//資料流
//...
break;}
::cotaskmemfree(statstg.pwcsname);
//釋放名稱所使用的記憶體}if
(penum)
if(pstgsub)}
列舉復合檔案的儲存結構
列舉復合檔案的儲存結構 word和excel等檔案均稱為復合檔案。這類檔案內部有乙個 檔案系統 採用 磁碟檔案 的組織方式來組織檔案內的資料,也稱為 檔案中的檔案系統 每個復合檔案中有乙個 根儲存 類似於檔案系統中的 根目錄 根儲存之下是若干 子儲存 類似於 子目錄 和 資料流 類似於 檔案 子儲存...
DOC復合文件的儲存結構
引用自中國硬碟基地 復合文件和fat檔案系統有許多相似的地方,學習過程中可以對比fat檔案系統進行學習 主扇區配置表 mast 記錄的是sat占用扇區情況,扇區的編號多少 即扇區sid 扇區配置表 sat 記錄的是乙個流占用扇區的情況,乙個流占用哪些扇區,哪些扇區的sid是多少 短扇區配置表 ssa...
結構化儲存 復合文件 永久物件
這幾天又複習了一下去年學習的com知識,總算是稍許理解了com擴充套件中的結構化儲存 復合文件和永久物件機制。一 結構化儲存的核心概念 結構化儲存在檔案系統基礎之上,又建立了乙個儲存系統,具體來說,是在普通檔案內建立了一套儲存系統 結構 檔案系統可以看成是一棵樹,樹上有子結點,子結點可以使檔案或目錄...