-
FindFirstFile
鎖定
根據文件名查找文件。該函數到一個文件夾(包括子文件夾)去搜索指定文件 如果要使用附加屬性去搜索文件的話 可以使用FindFirstFileEx函數。
- 外文名
- FindFirstFile
- 依 據
- 根據文件名查找文件
- 參數表
- lpFileNameString
- 性 質
- 函數
FindFirstFile參數簡介
Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
FindFirstFile返回值
Long,如執行成功,返回一個搜索句柄。如果出錯,返回一個INVALID_HANDLE_VALUE常數,一旦不再需要,應該用FindClose函數關閉這個句柄
FindFirstFile參數表
參數 類型及説明
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,這個結構用於裝載與找到的文件有關的信息。該結構可用於後續的搜索
FindFirstFile結構説明
WIN32_FIND_DATASTRUCT dwFileAttributesDWORD?;//文件屬性 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——文件是一個臨時文件。
(返回的文件名中會包含"."和".."。“.'代表本目錄,".."代表上一層目錄。一般情況下需要把這兩個名稱過濾掉。比如要進行文件刪除操作)
FindFirstFile註解
由這個函數返回的句柄可以作為一個參數用於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; }
FindFirstFile參數説明
LPCTSTR lpFileName文件名(包括路徑)
LPWIN32_FIND_DATA lpFindFileData 指向一個用於保存文件信息的結構體
FindFirstFile返回值
如果調用成功返回一個句柄,可用來做為FindNextFile或 FindClose參數
調用失敗 返回為INVALID_HANDLE_VALUE(即-1) ,可調用GetLastError來獲取錯誤信息