共用方式為


CFile::CFile

建構並初始化 CFile 物件。

CFile( ); CFile(    CAtlTransactionManager* pTM ); CFile(    HANDLE hFile  ); CFile(    LPCTSTR lpszFileName,    UINT nOpenFlags  ); CFile(    LPCTSTR lpszFileName,    UINT nOpenFlags,    CAtlTransactionManager* pTM );

參數

  • hFile
    要連結至 CFile 物件的檔案控制代碼。

  • lpszFileName
    要連結至 CFile 物件的檔案相對或完整路徑。

  • nOpenFlags
    指定檔案之檔案存取選項的位元組合 (OR)。 如需可能的選項,請參閱<備註>一節。

  • pTM
    CAtlTransactionManager 物件的指標

備註

下列五個表格會列出 nOpenFlags 參數的可能選項。

請僅選擇下列其中一個檔案存取模式選項。 預設檔案存取模式為 CFile::modeRead,其是唯讀的。

描述

CFile::modeRead

僅要求讀取權限。

CFile::modeWrite

僅要求寫入權限。

CFile::modeReadWrite

要求讀取和寫入權限。

請選擇下列其中一個字元模式選項。

描述

CFile::typeBinary

設定二進位模式 (僅在衍生的類別中使用)。

CFile::typeText

設定文字模式,對歸位字元與換行字元配對進行特殊處理 (僅在衍生類別中使用)。

CFile::typeUnicode

設定 Unicode 模式 (僅在衍生的類別中使用)。 當應用程式在 Unicode 組態中建置時,文字會以 Unicode 格式寫入檔案。 不會將 BOM 寫入檔案。

請僅選擇下列其中一個檔案共用模式選項。 預設檔案共用模式為 CFile::shareExclusive,其是獨佔的。

描述

CFile::shareDenyNone

無共用限制。

CFile::shareDenyRead

拒絕所有其他項目的讀取權限。

CFile::shareDenyWrite

拒絕所有其他項目的寫入權限。

CFile::shareExclusive

拒絕所有其他項目的讀取及寫入權限。

請選擇下列檔案的第一個,或兩者都選,以建立模式選項。 預設建立模式為 CFile::modeNoTruncate,其為開啟現有項目。

描述

CFile::modeCreate

如果檔案不存在,則建立新檔案;如果檔案已經存在,則引發 出CFileException

CFile::modeNoTruncate

如果檔案不存在,則建立新檔案;否則,如果檔案已經存在,則連結至 CFile 物件。

請按照所述,選擇下列檔案快取選項。 根據預設,系統會使用尚未做為選項提供的一般目的快取配置。

描述

CFile::osNoBuffer

系統不會對檔案使用間歇性快取。 此選項會取消下列 2 個選項。

CFile::osRandomAccess

檔案快取針對隨機存取最佳化。 請勿使用此選項及循序掃描選項。

CFile::osSequentialScan

檔案快取針對循序存取最佳化。 請勿使用此選項及隨機存取選項。

CFile::osWriteThrough

無延遲執行寫入作業。

選擇下列安全選項,以防止繼承檔案控制代碼。 根據預設,任何新子處理序都可以使用檔案控制代碼。

描述

CFile::modeNoInherit

防止任何子處理序使用檔案控制代碼。

預設建構函式會初始化成員,但不會將檔案連結至 CFile 物件。 使用此建構子之後,請使用 CFile::Open 方法,來開啟檔案,並將其連結至 CFile 物件。

具有一個參數的建構函式會初始化成員,並將現有檔案連結至 CFile 物件。

具有兩個參數的建構函式會初始化成員,並嘗試開啟指定的檔案。 如果此建構函式成功開啟指定的檔案,則該檔案會連結至 CFile 物件;否則,此建構函式會擲回指向 CInvalidArgException 物件的指標。 如需如何使用處理例外狀況的詳細資訊,請參閱例外狀況

如果 CFile 物件成功開啟指定的檔案,則它會在 CFile 物件終結時,自動關閉此檔案;否則,您必須在該檔案不再連結至 CFile 物件之後,明確關閉該檔案。

範例

下列程式碼顯示如何使用 CFile

HANDLE hFile = CreateFile(_T("CFile_File.dat"),
   GENERIC_WRITE, FILE_SHARE_READ,
   NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

if (hFile == INVALID_HANDLE_VALUE)
{
   AfxMessageBox(_T("Couldn't create the file!"));
}
else
{
   // Attach a CFile object to the handle we have.
   CFile myFile(hFile);

   static const TCHAR sz[] = _T("I love CFile!");

   // write string
   myFile.Write(sz, sizeof(sz));

   // We can call Close() explicitly, but the destructor would have 
   // also closed the file for us. Note that there's no need to 
   // call the CloseHandle() on the handle returned by the API because 
   // MFC will close it for us.
   myFile.Close();

需求

標頭: afx.h

請參閱

參考

CFile 類別

階層架構圖表