Windows下遍历文件目录
来源:互联网 发布:阿莱克丝塔萨 知乎 编辑:程序博客网 时间:2024/05/18 15:50
最近用到遍历文件目录,总结一下:
#include <Windows.h>WIN32_FIND_DATA fndData;HANDLE hFnd = INVALID_HANDLE_VALUE;hFnd = ::FindFirstFile(_T("D:\\Program Files\\*.*"), &fndData);if (hFnd == INVALID_HANDLE_VALUE){ return ;}while (::FindNextFile(&fndData)){ CString strFileName = fndData.cFileName; if (fndData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {// 目录 } else {// 文件 }}if (::GetLastError() == 18){ // 目录下的文件检索完毕.}::FindClose(hFnd);
我们可以通过一个递归函数来递归遍历:
void BuildRegSystem( const tstring& strFileSystemPath, const tstring& strAddParPath, CSysMgr& mgr ){ tstring strFsPath = strFileSystemPath; tstring strEnumPath = strFileSystemPath; tstring strAddNewPath = strAddParPath; if (*strFsPath.rbegin() != _T('\\')) { strFsPath += _T('\\'); } if (*strAddNewPath.rbegin() != _T('\\')) { strAddNewPath += _T('\\'); } strEnumPath = strFsPath + _T("*.*"); WIN32_FIND_DATA fndFile; HANDLE hFnd = ::FindFirstFile(strEnumPath.c_str(), &fndFile); if (hFnd == INVALID_HANDLE_VALUE) { return ; } while (::FindNextFile(hFnd, &fndFile)) { tstring strFileName = fndFile.cFileName; if (strFileName == _T("..")) {// 如果是上级目录,则不管. continue; } if (fndFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { // 如果是文件夹,则进行递归. mgr.CreateRegDirectory(strAddNewPath + strFileName); BuildRegSystem( strFsPath + strFileName, strAddNewPath + strFileName, regSystem ); } else { mgr.InsertEntry(strAddParPath, strFileName); } } ::FindClose(hFnd);}void Test(){ CSysMgr mgr; BuildRegSystem(_T("D:\\Program Files\\11game"), _T("\\"), mgr); // ... // ...}
没有任何复杂的操作,只为备忘。
- Windows下遍历文件目录
- windows遍历目录下所有文件
- windows遍历目录下所有文件
- windows遍历目录下所有文件
- windows遍历目录下所有文件
- Windows遍历目录文件
- 在Windows下,如何遍历某目录里所有文件?
- Windows 下目录的遍历
- 遍历目录下所有文件
- 遍历目录下的文件
- dos 下遍历文件目录
- 遍历目录下的文件
- 遍历目录下的文件
- 遍历目录下所有文件
- 遍历目录,获取目录下的文件
- Windows API遍历文件目录、搜索文件
- windows系统下使用FindFirstFile 和 FindNextFileA遍历某目录下的所有文件(c++编写)
- C++实现Linux和Windows下遍历指定目录下的文件
- 设计模式六大原则之(三)----依赖倒置原则
- 把当前页面加进收藏夹
- Linux的shell与export命令
- jdbc以事物方式往mysql写数据
- (最大流)Drainage Ditches(P1273)
- Windows下遍历文件目录
- datagridview的checkbox列,当修改checkbox状态时实时获得其状态值
- html 文本输入框效果
- 实现TCP并发服务器之四(poll函数)
- linux下访问Windows中的共享目录
- 漫谈反问题及一些题外话
- asp.net验证控件备忘
- mysql数据库导出与导入
- 启动时调整IOS模拟器显示方向的方法