MFC檔案讀寫、相對應的例外處理
¶MFC檔案讀寫、相對應的例外處理
原文連結: https://darkblack01.blogspot.com/2012/01/cfile-cmemfile-csharefile.html
移植時的最後更新日期: 2012-02-01T08:56:42.091+08:00
檔案讀寫類別
CFile
├CMemFile 好的執行效能
│└CShareFile 記憶體中,可以共享檔案
├COleStreamFile
│└ CMonikerFile
│ └ CAsyncMonikerFile
│ └ CDataPathProperty
│ └ CCachedDataPathProperty
├CScoketFile
└CStdioFile 有緩衝區 標準輸出入檔案
└CInternetFile
├CGopherfile
└CHttpFile
CFile
是否新建檔案,開&讀舊檔,唯讀寫,禁止共享(讀或寫)
(使用Win32API)
CStdioFile可指定文字模式、二進位模式開檔
(使用C語言函式)
讀取的資料量 CStdioFile.Read(指標 讀取資料的記憶體位址, UINT 欲讀取的資料量);
StringRead()的用法類似Read()
除了:
1. 讀取到’\n’結束。
2. 輸出結束自動加上null。
3. 會「回傳(讀取的)記憶體位址」,若讀不到東西回傳null。
讀取資料的記憶體位址 CStdioFile.StringRead(指標 讀取資料的記憶體位址 , UINT 欲讀取的資料量);
BOOL CStdioFile.StringRead(CString&);
檔案的例外處理類別
CException
└CFileException
例外處理範例:
try
{
CFile MyFile(“MyFile.old”, CFile::modeRead);
}
catch(CFileException *fx)
{
TCHAR buf[255];
fx->GetErrorMessage(buf, 255);
CString strPrompt(buf);
AfxMessageBox(strPrompt);
}
或者
CFile MyFile;
CFileException fx;
if(!MyFile.Open(“Myfile.old”, CFile::modeRead, &fx))
{
TCHAR buf[255];
fx.GetErrorMessage(buf, 255);
CString strPrompt(buf);
AfxMessageBox(strPrompt);
}