爱易网
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 浏览次数:21208 次
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软路由设置请问
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
天网防火墙提示C:\WINDOWS\explorer.exe要连接网络.是不是中木马了?搞了两天了,烦呀解决思路
windows2008服务器的系统盘怎么备份
各位大侠 ,小弟我的2003 不好用了
求高手解答,内外网ip如何转换,进来看下,表达不清.
d-link 的des-3026 端口限速有关问题
IIS启动不了的有关问题
windows2003作为打印机服务器有有关问题
windows下设立tomcat6开机启动
急 压缩文件夹,该怎么解决
推荐阅读
更多>
Windows Server 2008 R2自带的高级防火墙如何禁止某个IP链接服务器
流量控制在哪些层进展?原理
win7 看视频 就蓝屏 求大神 指导上
终于成功修改 win7 开机启动文字解决方法
window 域用户有关问题
可以在32位的系统 使用VMWARE安装64位的操作系统不解决办法
问一下,端口的banner信息是什么,干什么用的,该如何解决
网络上的两台电脑怎么找到对方的
求:为什么小弟我的Win7无法激活
windows怎么能在“运行”框输入名称就启动相应的软件
关于XP下VMWARE虚拟windows2003下配置了AD,DNS,DHCP不能访问外网的有关问题
关于QQ的奇怪有关问题,请高高高高手帮忙
Windows Server 2008 的性能,该怎么解决
DOS命令 运行一个 EXE文件可以用通配符吗解决方案
ghost11备份后系统还原出错解决方案
客户端要访问已建立的dns服务器,该电脑一定要设置已建立的dns服务器的dns地址吗
远程控制解决方法
Windows Phone 七开发环境
元旦欢乐,散分
开机速度奇慢-需要十多分钟解决方法