共用方式為


CArchive::CArchive

CArchive 建構物件並將其用於載入或儲存在物件中。

CArchive(
   CFile* pFile,
   UINT nMode,
   int nBufSize = 4096,
   void* lpBuf = NULL 
);

參數

  • pFile
    物件是不變的最後一個資料來源或目的端的 CFile 物件的指標。

  • nMode
    指定的旗標物件是否會從載入或儲存至檔案。 nMode 參數必須有下列其中一個值:

    • CArchive::load 從檔案載入資料。 要求 CFile 只讀取權限。

    • CArchive::store 將資料儲存到這個檔案。 CFile 需要寫入權限。

    • 檔案時,便呼叫解構函式時,CArchive::bNoFlushOnDelete 防止這個檔案中自動呼叫 Flush 。 如果您設定這個旗標,您必須明確呼叫 關閉 ,在解構函式呼叫之前。 如果您不使用,則您的資料將會損毀。

  • nBufSize
    指定內部檔案緩衝區大小的整數,以位元組為單位)。 請注意預設緩衝區大小為 4,096 位元組。 如果您經常封存大型物件,您會改善效能,如果您使用的是檔案緩衝區大小的倍數較大的緩衝區大小。

  • lpBuf
    out 大小 nBufSize使用者提供的緩衝區的任意指標。 如果沒有指定此參數,這個檔案從區域堆積配置緩衝區並釋放後,在物件終結時。 這個檔案無法釋放使用者提供的緩衝區。

備註

在您建立此檔案之後,您就無法變更這個規格。

您不能使用 CFile 作業修改檔案的狀態,直到您關閉這個檔案。 任何這類作業是破壞此檔案的完整性。 使用 CFile::GetPosition 函式,您可以在序列化期間隨時存取檔案指標的位置以取得檔案) 中物件從 GetFile 成員函式接著。 您應該在衍生檔案指標位置之前呼叫 CArchive::Flush

範例

CFile file;
TCHAR szBuf[512];
if( !file.Open(_T("CArchive__test__file.txt"), 
   CFile::modeCreate | CFile::modeWrite)) 
{
   #ifdef _DEBUG
     AFXDUMP(_T("Unable to open file\n"));
     exit(1);
   #endif
}
CArchive ar(&file, CArchive::store, 512, szBuf);

需求

Header: afx.h

請參閱

參考

CArchive 類別

階層架構圖

CArchive::Close

CArchive::Flush

CFile::Close