要实现指定目录下文件的遍历需要执行一下的部分:
第一步获取当前路径的名字:(MAX_PATH是在windows定义的所有的路径名字不超过其,调用该函数会使得得到当前的目录)
#include <Windows.h> char buff[MAX_PATH]; GetCurrentDirectory(MAX_PATH, buff);
接下来我们所要做的操作就是一个一个的找文件,遇到文件夹进递归,进去找到所有的文件,下面就是具体实现的代码输入参数就是我们刚刚获得的当前路径。
int findfile(char * filepath { char pathname[MAX_PATH]; WIN32_FIND_DATAA next; HANDLE handle; sprintf(pathname,"%s\\*.*", filepath);//这一步很重要 handle=FindFirstFile(pathname, &next); if (handle == INVALID_HANDLE_VALUE) { cout << "搜索失败" << endl; return 1; } char buff[MAX_PATH]; while (1) { if (FindNextFile(handle, &next) == FALSE) return 0; else { if (next.cFileName[0] == '.') continue;//用FindNextFile刚开始有.或者..,我们要避免这种情况 memset(buff, 0, MAX_PATH); sprintf(buff, "%s\\%s", filepath, next.cFileName);//文件的绝对路径 if (next.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { findfile(buff); } else { cout << buff << endl; } } } }
原文链接: https://www.cnblogs.com/yskn/p/9524838.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/279941
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!