Windows API——FindFirstFile——查找文件


 1 //查找文件
 2 HANDLE WINAPI FindFirstFile(
 3   __in          LPCTSTR lpFileName,//文件名或路徑
 4   __out         LPWIN32_FIND_DATA lpFindFileData
 5 );
 6 
 7 //查找下一個文件
 8 BOOL WINAPI FindNextFile(
 9   __in          HANDLE hFindFile,
10   __out         LPWIN32_FIND_DATA lpFindFileData
11 );
12 
13 typedef struct _WIN32_FIND_DATA {  
14       DWORD dwFileAttributes;  //文件屬性
15       FILETIME ftCreationTime;  //創建時間
16       FILETIME ftLastAccessTime;  //最近訪問時間
17       FILETIME ftLastWriteTime; //最近修改時間
18       DWORD nFileSizeHigh; //高位大小
19       DWORD nFileSizeLow;  //低位大小
20       DWORD dwReserved0;  //保留
21       DWORD dwReserved1;  //保留
22       TCHAR cFileName[MAX_PATH];//文件名,非全路徑 
23        TCHAR cAlternateFileName[14];
24 }WIN32_FIND_DATA,*PWIN32_FIND_DATA,*LPWIN32_FIND_DATA;

實例代碼:

 1 void FindFiles(CString &strPath)
 2 
 3 {
 4     WIN32_FIND_DATA findData;
 5 
 6     CString strTemp = strPath;
 7     strTemp.Format(_T("%s\\*.*"), strPath);//查找指定目錄下的直接的所有文件和目錄  8 
 9     HANDLE hFile = FindFirstFile(strTemp, &findData);
10     while (hFile != INVALID_HANDLE_VALUE)
11     {
12         if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//如果是目錄
13         {
14             if(findData.cFileName[0] != _T('.'))//排除.和..文件夾
15             {
16 
17                 strTemp =  strPath+ CString("\\") + findData.cFileName;//獲得完整路徑 18                 FindFiles(strTemp);//遞歸查找當前目錄的文件
19             }
20         }
21         else
22         {
23             strTemp =  strPath+ CString("\\") + findData.cFileName;
24         }
25 
26         if(!FindNextFile(hFile, &findData))
27         {
28             break;
29         }
30     }
31 
32 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM