計算機二級:VisualC++編程中的文件操作2016/5/14 10:42:05 | 來源:中國教育在線 | 發(fā)布者: | 查看:1102次
各種關于文件的操作在程序設計中十分常見,如果能對這些操作都了如指掌,就可以根據(jù)實際情況找到最佳的解決方案,從而可以在較短的時間內(nèi)編寫出高效的代碼。本文對Visual C++中有關文件操作進行了全面的介紹,并對在文件操作中經(jīng)常遇到的一些疑難問題進行了詳細分析。
1. 文件的查找
當對一個文件操作時,如果不知道該文件是否存在,就要首先進行查找。MFC中有一個專門用來進行文件查找的類“CFileFind”,使用它可以方便快捷地進行文件的查找。下面這段代碼演示了這個類的最基本使用方法。
CString strFileTitle;
CFileFind finder;
BOOL bWorking = finder.FindFile(“C:\\windows\\sysbkup\\*.cab”);
while(bWorking)
{
bWorking=finder.FindNextFile();
strFileTitle=finder.GetFileTitle();
}
2. 文件的打開/保存對話框
讓用戶選擇文件進行打開和存儲操作時,就要用到文件打開/保存對話框。MFC的類“CFileDialog”用于實現(xiàn)這種功能。使用“CFileDialog”聲明一個對象時,第一個 BOOL型參數(shù)用于指定文件的打開或保存,當為TRUE時將構造一個文件打開對話框,為FALSE時構造一個文件保存對話框。
在構造“CFileDialog”對象時,如果在參數(shù)中指定了“OFN_ALLOWMULTISELECT”風格,則在此對話框中可以進行多選操作。此時要重點注意為此“CFileDialog”對象的“m_ofn.lpstrFile”分配一塊內(nèi)存,用于存儲多選操作所返回的所有文件路徑名,如果不進行分配或分配的內(nèi)存過小就會導致操作失敗。下面這段程序演示了文件打開對話框的使用方法。
CFileDialog mFileDlg(TRUE, NULL,NULL, OFN_HIDEREADONLY|OFN_OVER
WRITEPROMPT|OFN_ALLOWMULTISELECT,“All Files (*.*)|*.*| |”, AfxGetMainWnd());
CString str(“ ”, 10000);
mFileDlg.m_ofn.lpstrFile=str.GetBuffer(10000);
str.ReleaseBuffer();
POSITION mPos=mFileDlg.GetStartPosition();
CString pathName(“ ”, 128);
CFileStatus status;
while(mPos!=NULL)
{
pathName=mFileDlg.GetNextPathName(mPos);
CFile::GetStatus(pathName, status); [ 3. 文件的讀寫
文件的讀寫非常重要,下面將重點進行介紹。文件讀寫最普通的方法是直接使用“CFile”類進行,如文件的讀寫可以使用下面的方法:
//對文件進行讀操作
char sRead[2];
CFile mFile(_T(“user.txt”),CFile::modeRead);
if(mFile.GetLength()《2)
return;
mFile.Read(sRead,2);
mFile.Close();
//對文件進行寫操作
CFile mFile(_T(“user.txt”), CFile::modeWrite|CFile::modeCreate);
mFile.Write(sRead,2);
mFile.Flush();
mFile.Close();
}