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