爱易网
IT新闻
IT新闻
爱易资讯
网站搭建
云虚拟主机教程
云服务器教程
Apache教程
IIS教程
Nginx教程
网站策划
站长文章
推广教程
淘宝客教程
网页设计
HTML教程
XHTML教程
CSS教程
HTML5教程
CSS3教程
JavaSript基础
JQuery教程
Node.js教程
前端技术
Ajax教程
Js特效
Xml教程
平面设计
页面UI设计
photoshop教程
程序开发
AI人工智能
Asp教程
Php教程
Asp.Net教程
Net Core教程
C#教程
Java教程
Jsp教程
开发技术
微信小程序教程
Uniapp开发教程
微信公众号开发
Andriod教程
IOS教程
DOS教程
Python教程
Docker教程
Windows Container教程
数据库
MSSQL教程
MySQL教程
Redis教程
Access教程
Oracle教程
数据库教程
操作系统
Linux教程
Windows教程
MAC教程
Cisco教程
交换机教程
防火墙教程
搜索
爱易网页
Windows教程
Windows上遍历文件目录
Windows上遍历文件目录
日期:2014-05-17 浏览次数:21250 次
Windows下遍历文件目录
最近用到遍历文件目录,总结一下:
#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); // ... // ... }
没有任何复杂的操作,只为备忘。
上一篇:安装更新时出现一些问题,但我们稍后会重试。 错误代码:0x8e5e0408
下一篇: Win200软路由设置请问
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
Windows XP SP3配备为支持多用户远程桌面连接
显示屏亮度的设置解决方案
仿Windows计算器-学习札记
怎么恢复苹果电脑上的windows系统
如何在无线路由器中隐藏MAC地址?
请问windows2003用户数的有关问题。多谢
请问:XP系统那个待机变灰色,不能用了是咋回事?多谢
优化大师优化不掉启动项解决方案
求高手给个思路 写个Skype软件的窃听程序解决办法
推荐阅读
更多>
代理服务器设置解决思路
windows装配cygwin&hadoop
求教windows备份拷贝,该如何解决
WINDOWS服务器保险设置
佛爱小弟我羊——注册表权限异常
Win XP系统,无线下网没有WPA安全选项
windows server 2008 的任务计划实施不成功
收集无线网卡的关键字,不要重复,该怎么解决
求win7 32位下载地址,该怎么解决
问问大牛们,现在广泛应用的软件防火墙能不能阻断应用层的攻击啊该如何解决
windows 像linux那样全用命令行靠谱么?解决办法
求64位的aspjpeg的key。该如何处理
安装双系统有关问题
windows7装配ORACLE 10g客户端
windows 底线程的同步和互斥的方法
小弟我是新加入的有有关问题问问友友们小弟我的电脑能正常开机不能重新启动一重新启动就满屏全是a.a.a.a.a
有关用户组的有关问题
windows上CVS权限设置
小弟我用vnc远程登录,建了两个帐号。说不用密码?可以登录到另一个帐号
windows数据类型与对应基本部类对照表