win32 API 遍历一个目录下的文件
生活随笔
收集整理的這篇文章主要介紹了
win32 API 遍历一个目录下的文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼;
#include <windows.h>DWORD EnumerateFileInDirectory(LPWSTR );int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) {/* TODO: Place code here.*/WCHAR szCurrentPath[MAX_PATH];GetCurrentDirectory(MAX_PATH, szCurrentPath);MessageBox(NULL,szCurrentPath,"當前目錄",MB_OK);EnumerateFileInDirectory(szCurrentPath);return 0; }/* * DWORD EnumerateFileInDirectory(LPSTR szPath) * 功能:遍歷目錄下的文件和子目錄,顯示文件和文件夾隱藏、加密的屬性* * 參數:LPSTR szPath,為需遍歷的路徑* * 返回值:0代表執行完成,1代表錯誤 */ DWORD EnumerateFileInDirectory(LPWSTR szPath) {WIN32_FIND_DATA FindFileData;HANDLE hListFile;WCHAR szFilePath[MAX_PATH];TCHAR szBuffer[100] ;// 構造代表子目錄和文件夾路徑的字符串,使用通配符"*"lstrcpy(szFilePath, szPath);// lstrcat(szFilePath, "\\*.txt");//lstrcat(szFilePath, L"\\*");lstrcat(szFilePath, "\\*");// 查找第一個文件/目錄,獲得查找句柄hListFile = FindFirstFile(szFilePath, &FindFileData);//hListFile = FindFirstFile(szPath, &FindFileData);// 判斷句柄if(hListFile == INVALID_HANDLE_VALUE){wsprintf(szBuffer, "%d",GetLastError());MessageBox(NULL,szBuffer,"錯誤",MB_OK);return 1;}else{do{/* 如果不想顯示代表本級目錄和上級目錄的“.”和“..”,可以使用注釋部分的代碼過濾if(lstrcmp(FindFileData.cFileName, TEXT(".")) == 0 ||lstrcmp(FindFileData.cFileName, TEXT("..")) == 0){continue;}*/// 打印文件名、目錄名//wsprintf(szBuffer, "%s",FindFileData.cFileName);MessageBox(NULL,FindFileData.cFileName,"遍歷",MB_OK);// 判斷文件屬性,是否為加密文件或者文件夾if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_ENCRYPTED){MessageBox(NULL,"<加密> ","遍歷",MB_OK);}// 判斷文件屬性,是否為隱藏文件或文件夾if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN){MessageBox(NULL,"<隱藏> ","遍歷",MB_OK);}// 判斷文件屬性,是否為目錄if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){MessageBox(NULL,"<DIR> ","遍歷",MB_OK);}// 讀者可根據文件屬性表中的內容自行添加、判斷文件屬性}while(FindNextFile(hListFile, &FindFileData));}return 0; }工程;
構建以后,拷到一個目錄下;
運行如下;?
hListFile = FindFirstFile(szFilePath, &FindFileData);
首先查找第一個文件,獲得句柄;
FindNextFile(hListFile, &FindFileData);
然后用獲得的句柄找下一個;結果放在WIN32_FIND_DATA結構體類型的變量FindFileData中;
總結
以上是生活随笔為你收集整理的win32 API 遍历一个目录下的文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win32 API 浏览目录对话框示例
- 下一篇: OpenCV About 页面翻译