爱易网
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 浏览次数:21392 次
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软路由设置请问
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
win2003的授权怎么使用
请教小弟我改变了小弟我的邮件服务器SMTP的监听端口,为啥不能收信了呢
征集关于qq空间密码破解方法
怎么屏蔽360对hosts文件的修改
正本装了个MSDN版的windows
关于windows组件的有关问题
怎么把绿色版的Tomcat做成windows的服务项-自动启动(也可手动)
笔记本IBM中的R60E装英语xp sp2出现的有关问题
安装双系统有关问题
推荐阅读
更多>
小弟我是一个初学者,电脑中毒,请帮小弟我一下
windows 2008 装不了
win2003能自动终止应用程序
请教在哪个网站上可以用腾讯的TM?因公司的网管把端口封了,但听别人说在某个网站上可以使用TM的。网址是多少,谢
卡巴斯基2014通盘扫描速度很慢
Windows Phone 七游戏曝光 震撼3D效果
怎样能在局域网主机建立一个http地址,然后其余的机子能访问这个地址?该怎么解决
重新启动计算机后World Wide Web Publishing Service服务无法启动
Virtual PC上怎么使用GHO备份安装虚拟机
IT江湖新爆出的那些鲜料儿,该如何处理
重装系统跟AD域对以前的计算机有什么影响
进了间商场当信息员。发现啥都不会。心里很虚。怎么处理。
Symantec AntiVirus企业版10.0怎样升级病毒库
IE的FLASH卡死有关问题
【议论】预计多少年IPV6取代IPV4成为主流
批处理如何获取当前目录的绝对路径
问个ghost复刻额有关问题
现在WIN2003 SP2正式版出来了吗?可以装在中文版的域控制器吗?该如何解决
VixVMware API函数报错
stop:0x00007b解决思路