計算機二級考試C語言輔導:剖析VC中的文件操作1

字號:

一、 剖析VC中的文件操作
    各種關(guān)于文件的操作在程序設(shè)計中是十分常見,如果能對其各種操作都了如指掌,就可以根據(jù)實際情況找到的解決方案,從而在較短的時
    間內(nèi)編寫出高效的代碼,因而熟練的掌握文件操作是十分重要的。本文將對Visual C++中有關(guān)文件操作進行全面的介紹,并對在文件操作中經(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時將構(gòu)造一個文件打開對話框,為FALSE時構(gòu)造一個文件保存對話框。
    在構(gòu)造CFileDialog對象時,如果在參數(shù)中指定了OFN_ALLOWMULTISELECT風格,則在此對話框中可以進行多選操作。此時要重點注意為此
    CFileDialog對象的m_ofn.lpstrFile分配一塊內(nèi)存,用于存儲多選操作所返回的所有文件路徑名,如果不進行分配或分配的內(nèi)存過小就會導致
    操作失敗。下面這段程序演示了文件打開對話框的使用方法。
    CFileDialog mFileDlg(TRUE,NULL,NULL,
    OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|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 );
    }