FindFirstFile

FindFirstFile

根據檔案名稱查找檔案。該函式到一個資料夾(包括子資料夾)去搜尋指定檔案 如果要使用附加屬性去搜尋檔案的話 可以使用FindFirstFileEx函式。

基本介紹

  • 外文名:FindFirstFile
  • 依據:根據檔案名稱查找檔案
  • 參數表:lpFileNameString
  • 性質:函式
VB聲明,返回值,參數表,結構說明,註解,VC聲明,參數說明,返回值,

VB聲明

Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

返回值

Long,如執行成功,返回一個搜尋句柄。如果出錯,返回一個INVALID_HANDLE_VALUE常數,一旦不再需要,應該用FindClose函式關閉這個句柄

參數表

參數 類型及說明
lpFileNameString,欲搜尋的檔案名稱。參數可如下
c:\Windows\*.*//在c:\Windows目錄中查找所有檔案c:\Windows\System32\*.dll//在c:\Windows\System32目錄中查找所有dll檔案c:\Windows\System.ini;在c:\Windows目錄中查找System.ini檔案c:\Windows\a???.*//在c:\Windows目錄中查找所有以a開頭的檔案名稱長度.為4個字元的檔案Test.dat//在當前目錄查找Test.dat檔案*.*//在當前目錄查找所有檔案
(注!一定要帶檔案名稱。如果參數為“c:\Windows”,則返回的檔案名稱為“Windows”,並且接下來調用FindNextFile會返回失敗)
lpFindFileDataWIN32_FIND_DATA,這個結構用於裝載與找到的檔案有關的信息。該結構可用於後續的搜尋

結構說明

WIN32_FIND_DATASTRUCTdwFileAttributesDWORD?;//檔案屬性ftCreationTimeFILETIME<>;//檔案的創建日期ftLastAccessTimeFILETIME<>;//檔案的最後存取日期ftLastWriteTimeFILETIME<>;//檔案的最後修改日期nFileSizeHighDWORD?;//檔案長度的高32位nFileSizeLowWORD?;//檔案長度的低32位dwReserved0DWORD?;//內部使用dwReserved1DWORD?;//內部使用cFileNameBYTEMAX_PATHdup(?);//本次找到的檔案名稱cAlternateBYTE14dup(?);//檔案的8.3結構的短檔案名稱WIN32_FIND_DATAENDS
dwFileAttributes欄位可以是下面取值的組合,通過這個欄位可以檢查找到的究竟是一個檔案還是一個子目錄,以及其他的檔案屬性
●FILE_ATTRIBUTE_ARCHIVE——檔案包含歸檔屬性。●FILE_ATTRIBUTE_COMPRESSED——檔案和目錄被壓縮。●FILE_ATTRIBUTE_DIRECTORY——找到的是一個目錄。●FILE_ATTRIBUTE_HIDDEN——檔案包含隱含屬性。●FILE_ATTRIBUTE_NORMAL——檔案沒有其他屬性。●FILE_ATTRIBUTE_READONLY——檔案包含唯讀屬性。●FILE_ATTRIBUTE_SYSTEM——檔案包含系統屬性。●FILE_ATTRIBUTE_TEMPORARY——檔案是一個臨時檔案。
(返回的檔案名稱中會包含"."和".."。“.'代表本目錄,".."代表上一層目錄。一般情況下需要把這兩個名稱過濾掉。比如要進行檔案刪除操作)

註解

由這個函式返回的句柄可以作為一個參數用於FindNextFile函式。這樣一來,就可以方便的枚舉出與lpFileName參數指定的檔案名稱相符的所有檔案

VC聲明

HANDLE FindFirstFile(    LPCTSTR lpFileName,//filename    LPWIN32_FIND_DATA lpFindFileData//databuffer);
程式例
#include<stdio.h>#include<windows.h>int main(){    WIN32_FIND_DATA p;    HANDLE h=FindFirstFile("e:\\test\\*.c",&p);    puts(p.cFileName);    while(FindNextFile(h,&p))    puts(p.cFileName);    return0;}

參數說明

LPCTSTR lpFileName檔案名稱(包括路徑)
LPWIN32_FIND_DATA lpFindFileData 指向一個用於保存檔案信息的結構體

返回值

如果調用成功返回一個句柄,可用來做為FindNextFileFindClose參數
調用失敗 返回為INVALID_HANDLE_VALUE(即-1) ,可調用GetLastError來獲取錯誤信息

相關詞條

熱門詞條

聯絡我們