列舉復合檔案的儲存結構

2021-04-13 08:24:39 字數 1045 閱讀 1054

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擴充套件中的結構化儲存 復合文件和永久物件機制。一 結構化儲存的核心概念 結構化儲存在檔案系統基礎之上,又建立了乙個儲存系統,具體來說,是在普通檔案內建立了一套儲存系統 結構 檔案系統可以看成是一棵樹,樹上有子結點,子結點可以使檔案或目錄...