| 在VC中,大多數(shù)情況對(duì)文件的操作都使用系統(tǒng)提供的 API 函數(shù),但有的函數(shù)我們不是很熟悉,以下提供一些文件操作 API 函數(shù)介紹:
一般文件操作 API
CreateFile 打開文件 要對(duì)文件進(jìn)行讀寫等操作,首先必須獲得文件句柄,通過該函數(shù)可以獲得文件句柄,該函數(shù)是通向文件世界的大門。
ReadFile 從文件中讀取字節(jié)信息。 在打開文件獲得了文件句柄之后,則可以通過該函數(shù)讀取數(shù)據(jù)。
WriteFile 向文件寫入字節(jié)信息。 同樣可以將文件句柄傳給該函數(shù),從而實(shí)現(xiàn)對(duì)文件數(shù)據(jù)的寫入。
CloseHandle 關(guān)閉文件句柄。 打開門之后,自然要記得關(guān)上。
GetFileTime 獲取文件時(shí)間。 有三個(gè)文件時(shí)間可供獲?。簞?chuàng)建時(shí)間、最后訪問時(shí)間、最后寫時(shí)間。 該函數(shù)同樣需要文件句柄作為入口參數(shù)。
GetFileSize 獲取文件大小。 由于文件大小可以高達(dá)上數(shù)G(1G需要30位),因此一個(gè)32位的雙字節(jié)類型無法對(duì)其精確表達(dá),因此返回碼表示低32位,還有一個(gè)出口參數(shù)可以傳出高32位。 該函數(shù)同樣需要文件句柄作為入口參數(shù)。
GetFileAttributes 獲取文件屬性。 可以獲取文件的存檔、只讀、系統(tǒng)、隱藏等屬性。 該函數(shù)只需一個(gè)文件路徑作為參數(shù)。
SetFileAttributes 設(shè)置文件屬性。 能獲取,自然也應(yīng)該能設(shè)置。 可以設(shè)置文件的存檔、只讀、系統(tǒng)、隱藏等屬性。 該函數(shù)只需一個(gè)文件路徑作為參數(shù)。
GetFileInformationByHandle 獲取所有文件信息 該函數(shù)能夠獲取上面所有函數(shù)所能夠獲取的信息,如大小、屬性等,同時(shí)還包括一些其他地方無法獲取的信息,比如:文件卷標(biāo)、索引和鏈接信息。 該函數(shù)需要文件句柄作為入口參數(shù)。
GetFullPathName 獲取文件路徑,該函數(shù)獲取文件的完整路徑名。 需要提醒的是:只有當(dāng)該文件在當(dāng)前目錄下,結(jié)果才正確。如果要得到真正的路徑。應(yīng)該用GetModuleFileName函數(shù)。
CopyFile 復(fù)制文件 注意:只能復(fù)制文件,而不能復(fù)制目錄
MoveFileEx 移動(dòng)文件 既可以移動(dòng)文件,也可以移動(dòng)目錄,但不能跨越盤符。(Window2000下設(shè)置移動(dòng)標(biāo)志可以實(shí)現(xiàn)跨越盤符操作)
DeleteFile 刪除文件
GetTempPath 獲取Windows臨時(shí)目錄路徑
GetTempFileName 在Windows臨時(shí)目錄路徑下創(chuàng)建一個(gè)唯一的臨時(shí)文件
SetFilePoint 移動(dòng)文件指針。 該函數(shù)用于對(duì)文件進(jìn)行高級(jí)讀寫操作時(shí)。
文件的鎖定和解鎖
LockFile UnlockFile LockFileEx UnlockFileEx
以上四個(gè)函數(shù)用于對(duì)文件進(jìn)行鎖定和解鎖。這樣可以實(shí)現(xiàn)文件的異步操作??赏瑫r(shí)對(duì)文件的不同部分進(jìn)行各自的操作。
文件的壓縮和解壓縮
LZOpenFile 打開壓縮文件以讀取
LZSeek 查找壓縮文件中的一個(gè)位置
LZRead 讀一個(gè)壓縮文件
LZClose 關(guān)閉一個(gè)壓縮文件
LZCopy 復(fù)制壓縮文件并在處理過程中展開
GetExpandedName 從壓縮文件中返回文件名稱。
以上六個(gè)函數(shù)為32位 API 中的一個(gè)小擴(kuò)展庫,文件壓縮擴(kuò)展庫中的函數(shù)。文件壓縮可以用命令 compress 創(chuàng)建。
文件內(nèi)核對(duì)象
32位 API 提供一個(gè)稱為文件映像的特性,它允許將文件直接映射為一個(gè)應(yīng)用的虛擬內(nèi)存空間,這一技術(shù)可用于簡(jiǎn)化和加速文件訪問。
CreateFileMapping 創(chuàng)建和命名映射
MapViewOfFile 把文件映射裝載如內(nèi)存
UnmapViewOfFile 釋放視圖并把變化寫回文件
FlushViewOfFile 將視圖的變化刷新寫入磁盤
希望通過以上幾個(gè)常用的 API 函數(shù),能快速的提高文件操作過程函數(shù)的編寫。 |
|
版權(quán)所有 ? 2004 VC知識(shí)庫
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。