Windows下使用FindFirstFile和FindNextFile列舉目錄中的檔案
阿新 • • 發佈:2019-02-06
在Windows下程式設計經常需要列舉出某個目錄下的所有檔案,以便對該目錄下的檔案進行批量處理,這種情形下,我們可以使用windows api提供的FindFirstFile和FindNextFile。
MSDN對這兩個函式的文件:
http://msdn.microsoft.com/zh-cn/library/aa914391(en-us).aspx
http://msdn.microsoft.com/zh-cn/library/aa364428.aspx
簡單的示例程式碼:
#include <windows.h> #include <tchar.h> #include <stdio.h> int main(int argc, char *argv[]) { WIN32_FIND_DATA FindFileData; HANDLE hFind; hFind = FindFirstFile("*", &FindFileData); if (hFind == INVALID_HANDLE_VALUE) { printf ("FindFirstFile failed (%d)\n", GetLastError()); return -2; } printf("Targets:\n"); do { printf ("\t%s\n", FindFileData.cFileName); } while (FindNextFile(hFind, &FindFileData)); return 0; }
注意要點:
@1.第10行
我們可以根據需要,修改FindFirstFile的第1個引數,來獲取對應字尾名的函式。如FindFirstFile("*.jpg", &FindFileData)可以查詢字尾名為JPG的檔案。
@2.
Targets:
.
..
90289982666714068085
CameraTest
CameraTest.zip
在列出來的檔案中,可能會包含.和..兩個檔案,這兩個並不是真正在這個目錄中的檔案,當使用檔案路徑進行操作時:.表示當前目錄,..表示上一級目錄。