C语言Win32 API目录遍历 博客分类: 随身小记 win32APIlistFindFirstFileFindNextFile
程序员文章站
2024-03-14 16:27:01
...
#include "stdafx.h" #include "windows.h" bool listPath(wchar_t *lpszPath); int _tmain(int argc, _TCHAR* argv[]) { listPath(_T("Directory here")); return 0; } bool listPath(wchar_t *lpszPath) { wchar_t szFilePath[MAX_PATH]; /* 遍历路径(正则表达式*.*) */ wchar_t szAllPath[MAX_PATH]; /* 存储具体文件的绝对路径 */ WIN32_FIND_DATA fdFileData; /* 存储文件数据 */ HANDLE hFindFile; /* 文件句柄 */ wsprintf(szFilePath, _T("%s%s"), lpszPath, _T("\\*.*")); if((hFindFile = FindFirstFile(szFilePath, &fdFileData)) == INVALID_HANDLE_VALUE) { printf("Find file failed, Error code:%d\n", GetLastError()); return false; } do { wsprintf(szAllPath, _T("%s\\%s"), lpszPath, fdFileData.cFileName); if(!lstrcmp(fdFileData.cFileName, _T("."))) /* 找到的为当前目录. */ continue; if(!lstrcmp(fdFileData.cFileName, _T("..")))/* 找到的为父目录.. */ continue; wprintf(_T("%s\\%s\n"), lpszPath, fdFileData.cFileName); //if(fdFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) //printf("<hidden>\n"); if(fdFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { //printf("<dir>\n"); listPath(szAllPath); } printf("\n"); }while(FindNextFile(hFindFile, &fdFileData)); FindClose(hFindFile); return true; }
参考页面:http://huangws138.blog.163.com/blog/static/58790621201142843432632/