日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

win32 API 遍历一个目录下的文件

發(fā)布時(shí)間:2025/4/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 win32 API 遍历一个目录下的文件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

代碼;

#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,"當(dāng)前目錄",MB_OK);EnumerateFileInDirectory(szCurrentPath);return 0; }/* * DWORD EnumerateFileInDirectory(LPSTR szPath) * 功能:遍歷目錄下的文件和子目錄,顯示文件和文件夾隱藏、加密的屬性* * 參數(shù):LPSTR szPath,為需遍歷的路徑* * 返回值:0代表執(zhí)行完成,1代表錯(cuò)誤 */ DWORD EnumerateFileInDirectory(LPWSTR szPath) {WIN32_FIND_DATA FindFileData;HANDLE hListFile;WCHAR szFilePath[MAX_PATH];TCHAR szBuffer[100] ;// 構(gòu)造代表子目錄和文件夾路徑的字符串,使用通配符"*"lstrcpy(szFilePath, szPath);// lstrcat(szFilePath, "\\*.txt");//lstrcat(szFilePath, L"\\*");lstrcat(szFilePath, "\\*");// 查找第一個(gè)文件/目錄,獲得查找句柄hListFile = FindFirstFile(szFilePath, &FindFileData);//hListFile = FindFirstFile(szPath, &FindFileData);// 判斷句柄if(hListFile == INVALID_HANDLE_VALUE){wsprintf(szBuffer, "%d",GetLastError());MessageBox(NULL,szBuffer,"錯(cuò)誤",MB_OK);return 1;}else{do{/* 如果不想顯示代表本級(jí)目錄和上級(jí)目錄的“.”和“..”,可以使用注釋部分的代碼過濾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);}// 讀者可根據(jù)文件屬性表中的內(nèi)容自行添加、判斷文件屬性}while(FindNextFile(hListFile, &FindFileData));}return 0; }

工程;

構(gòu)建以后,拷到一個(gè)目錄下;

運(yùn)行如下;?

hListFile = FindFirstFile(szFilePath, &FindFileData);

首先查找第一個(gè)文件,獲得句柄;

FindNextFile(hListFile, &FindFileData);

然后用獲得的句柄找下一個(gè);結(jié)果放在WIN32_FIND_DATA結(jié)構(gòu)體類型的變量FindFileData中;

總結(jié)

以上是生活随笔為你收集整理的win32 API 遍历一个目录下的文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。