列舉復合檔案的儲存結構

2021-04-15 00:47:14 字數 975 閱讀 9528

列舉復合檔案的儲存結構     

word和excel等檔案均稱為復合檔案。這類檔案內部有乙個「檔案系統」,採用「磁碟檔案」的組織方式來組織檔案內的資料,也稱為「檔案中的檔案系統」。

每個復合檔案中有乙個「根儲存」(類似於檔案系統中的「根目錄」),根儲存之下是若干「子儲存」(類似於「子目錄」)和「資料流」(類似於「檔案」),子儲存之下可以再有子儲存和資料流……。

下列**可將任一復合檔案的檔案結構進行列舉,如配合樹型控制項(如:ctreectrl),可將檔案的儲存結構清晰的展現出來。

#include

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