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