程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 介紹幾個操作文件的API函數

介紹幾個操作文件的API函數

編輯:vc教程

  在VC中,大多數情況對文件的操作都使用系統提供的 API 函數,但有的函數我們不是很熟悉,以下提供一些文件操作 API 函數介紹:

  一般文件操作 API

  CreateFile
  打開文件
  要對文件進行讀寫等操作,首先必須獲得文件句柄,通過該函數可以獲得文件句柄,該函數是通向文件世界的大門。

  ReadFile
  從文件中讀取字節信息。
  在打開文件獲得了文件句柄之後,則可以通過該函數讀取數據。

  WriteFile
  向文件寫入字節信息。
  同樣可以將文件句柄傳給該函數,從而實現對文件數據的寫入。

  CloseHandle
  關閉文件句柄。
  打開門之後,自然要記得關上。

  GetFileTime
  獲取文件時間。
  有三個文件時間可供獲取:創建時間、最後訪問時間、最後寫時間。
  該函數同樣需要文件句柄作為入口參數。

  GetFileSize
  獲取文件大小。
  由於文件大小可以高達上數G(1G需要30位),因此一個32位的雙字節類型無法對其精確表達,因此返回碼表示低32位,還有一個出口參數可以傳出高32位。
  該函數同樣需要文件句柄作為入口參數。

  GetFileAttributes
  獲取文件屬性。
  可以獲取文件的存檔、只讀、系統、隱藏等屬性。
  該函數只需一個文件路徑作為參數。

  SetFileAttributes
  設置文件屬性。
  能獲取,自然也應該能設置。
  可以設置文件的存檔、只讀、系統、隱藏等屬性。
  該函數只需一個文件路徑作為參數。

  GetFileInformationByHandle
  獲取所有文件信息
  該函數能夠獲取上面所有函數所能夠獲取的信息,如大小、屬性等,同時還包括一些其他地方無法獲取的信息,比如:文件卷標、索引和鏈接信息。
  該函數需要文件句柄作為入口參數。

  GetFullPathName
  獲取文件路徑,該函數獲取文件的完整路徑名。
  需要提醒的是:只有當該文件在當前目錄下,結果才正確。如果要得到真正的路徑。應該用GetModuleFileName函數。

  CopyFile
  復制文件
  注意:只能復制文件,而不能復制目錄

  MoveFileEx
  移動文件
  既可以移動文件,也可以移動目錄,但不能跨越盤符。(Window2000下設置移動標志可以實現跨越盤符操作)

  DeleteFile
  刪除文件

  GetTempPath
  獲取Windows臨時目錄路徑

  GetTempFileName
  在Windows臨時目錄路徑下創建一個唯一的臨時文件

  SetFilePoint
  移動文件指針。
  該函數用於對文件進行高級讀寫操作時。

  文件的鎖定和解鎖

  LockFile
  UnlockFile
  LockFileEx
  UnlockFileEx

  以上四個函數用於對文件進行鎖定和解鎖。這樣可以實現文件的異步操作。可同時對文件的不同部分進行各自的操作。

  文件的壓縮和解壓縮

  LZOpenFile
  打開壓縮文件以讀取

  LZSeek
  查找壓縮文件中的一個位置

  LZRead
  讀一個壓縮文件

  LZClose
  關閉一個壓縮文件

  LZCopy
  復制壓縮文件並在處理過程中展開

  GetExpandedName
  從壓縮文件中返回文件名稱。

  以上六個函數為32位 API 中的一個小擴展庫,文件壓縮擴展庫中的函數。文件壓縮可以用命令 compress 創建。


  文件內核對象

  32位 API 提供一個稱為文件映像的特性,它允許將文件直接映射為一個應用的虛擬內存空間,這一技術可用於簡化和加速文件訪問。

  CreateFileMapping
  創建和命名映射

  MapVIEwOfFile
  把文件映射裝載如內存

  UnmapVIEwOfFile
  釋放視圖並把變化寫回文件

  FlushVIEwOfFile
  將視圖的變化刷新寫入磁盤

  希望通過以上幾個常用的 API 函數,能快速的提高文件操作過程函數的編寫。

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved