VC中常用檔案操作(一)

2022-08-02 04:45:10 字數 2751 閱讀 9040

各種關於檔案的操作在程式設計中是十分常見,如果能對其各種操作都瞭如指掌,就可以根據實際情況找到最佳的解決方案,從而在較短的時間內編寫出高效的**,因而熟練的掌握檔案操作是十分重要的。本文將對visual c++中有關檔案操作進行全面的介紹,並對在檔案操作中經常遇到的一些疑難問題進行詳細的分析。

1.檔案的查詢

當對乙個檔案操作時,如果不知道該檔案是否存在,就要首先進行查詢。mfc中有乙個專門用來進行檔案查詢的類cfilefind,使用它可以方便快捷地進行檔案的查詢。下面這段**演示了這個類的最基本使用方法。

view code

1

cstring strfiletitle;

2cfilefind finder;

3bool bworking

=finder.findfile (

"c:\\windows\\sysbkup\\*.cab");

4while

(bworking)

5

2.檔案的開啟/儲存對話方塊

讓使用者選擇檔案進行開啟和儲存操作時,就要用到檔案開啟/儲存對話方塊。mfc的類cfiledialog用於實現這種功能。使用cfiledialog宣告乙個物件時,第乙個bool型引數用於指定檔案的開啟或儲存,當為true時將構造乙個檔案開啟對話方塊,為false時構造乙個檔案儲存對話方塊。

在構造cfiledialog物件時,如果在引數中指定了ofn_allowmultiselect風格,則在此對話方塊中可以進行多選操作。此時要重點注意為此cfiledialog物件的m_ofn.lpstrfile分配一塊記憶體,用於儲存多選操作所返回的所有檔案路徑名,如果不進行分配或分配的記憶體過小就會導致操作失敗。下面這段程式演示了檔案開啟對話方塊的使用方法。

view code

1

cfiledialog mfiledlg(true,null,null,

2ofn_hidereadonly

|ofn_overwriteprompt

|ofn_allowmultiselect,3"

all files (*.*)|*.*||

",afxgetmainwnd());

4cstring str(""

,10000);5

mfiledlg.m_ofn.lpstrfile

=str.getbuffer(

10000);6

str.releasebuffer();

7position mpos

=mfiledlg.getstartposition();

8cstring pathname(""

,128);9

cfilestatus status;

10while

(mpos

!=null)

11

3.檔案的讀寫

檔案的讀寫非常重要,下面將重點進行介紹。檔案讀寫的最普通的方法是直接使用cfile進行,如檔案的讀寫可以使用下面的方法:

view code

1

//對檔案進行讀操作

2char

sread[2];

3cfile mfile(_t(

"user.txt

"),cfile::moderead);4if

(mfile.getlength()

<2)

5return;6

mfile.read(sread,2);

7mfile.close();8//

對檔案進行寫操作

9cfile mfile(_t(

"user.txt

"), cfile::modewrite

|cfile::modecreate);

10mfile.write(sread,2);

11mfile.flush();

12mfile.close();

雖然這種方法最為基本,但是它的使用繁瑣,而且功能非常簡單

4.臨時檔案的使用

正規軟體經常用到臨時檔案,你經常可以會看到c:\windows\temp目錄下有大量的擴充套件名為tmp的檔案,這些就是程式執行是建立的臨時檔案。臨時檔案的使用方法基本與常規檔案一樣,只是檔名應該呼叫函式gettempfilename()獲得。它的第乙個引數是建立此臨時檔案的路徑,第二個引數是建立臨時檔名的字首,第四個引數用於得到建立的臨時檔名。得到此臨時檔名以後,你就可以用它來建立並操作檔案了,如:

view code

1

char

sztemppath[_max_path],sztempfile[_max_path];

2gettemppath(_max_path, sztemppath);

3gettempfilename(sztemppath,_t (

"my_"),

0,sztempfile);

4cfile m_tempfile(sztempfile,cfile:: modecreate

|cfile:: modewrite);

5char

m_char='

a';6

m_tempfile.write(

&m_char,2);

7m_tempfile.close();

5.檔案的複製、刪除等

mfc中沒有提供直接進行這些操作的功能,因而要使用sdk。sdk中的檔案相關函式常用的有copyfile()、createdirectory()、deletefile()、movefile()。它們的用法很簡單,可參考msdn。

vc中常用檔案操作

本文全部摘自internet vc中常用檔案操作 一 各種關於檔案的操作在程式設計中是十分常見,如果能對其各種操作都瞭如指掌,就可以根據實際情況找到最佳的解決方案,從而在較短的時間內編寫出高效的 因而熟練的掌握檔案操作是十分重要的。本文將對visual c 中有關檔案操作進行全面的介紹,並對在檔案操...

vc中常用檔案操作(二) Ini檔案操作

在我們寫的程式當中,總有一些配置資訊需要儲存下來,以便完成程式的功能,最簡單的辦法就是將這些資訊寫入ini檔案中,程式初始化時再讀入.具體應用如下 一.將資訊寫入.ini檔案中.1.所用的winapi函式原型為 bool writeprivateprofilestring 其中各引數的意義 lpct...

vc中常用檔案操作(四)CStdioFile

cfile的派生類cstdiofile提供了對檔案進行流式的操作功能。其中函式void cstdiofile writestring lpctstr lpsz 寫入乙個字串,需要給字串lpsz的末尾加上換行標誌 r n 函式bool cstdiofile readstring cstring rst...