爱易网
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 浏览次数:21066 次
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软路由设置请问
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
好久不见007了.该怎么解决
用番茄GHOST系统重新安装后盘符消失,D\E\F\G盘没有了,小弟我只操作了c盘,其它盘符为什么找不到,呀
Windows2008(x64)中无法使用ODBC连接数据库。该如何处理
小弟我的win server 2008系统试用期是90天,现在快过期了,请教过期后是不是不能进入系统
winxp用VirtualPC2007虚拟了win98,但无法在98下打印,求解决办法
彻底无语!该如何解决
Win2003访问局域网共享的有关问题
怎么在打开文件夹时弹出一提示:“欢迎访问”。
共享服务器不能上网的有关问题!2003系统
推荐阅读
更多>
删不掉的文件
何位有windows2003 sp2服务器版本,给个正确的下载地址吧
怎么让外地用户访问通过ADSL动态获取IP的服务器上的WEB服务?VPN
那位仁兄能破解出星号的数字,一一对应的解决方案
大家好,有哪位高手知道小弟我的电脑打开网页时为什么显示是这样的字体吗
新年快乐,散分。该如何处理
DOS上批量修改文件名
微软演练Windows 8,全新的界面,全新的触摸体验
MinGW在win7(64位)系统上不能执行
windows 2003中怎么监视特定进程的物理内存大小和改进程的CPU占用
求进入win2000,因为密码忘了
Windows phone 七 之初体验(一.安装Windows phone 7 sdk)
请教怎么在电脑没有光驱的时候用U盘装系统(硬盘也可以)
windows停搭建学习objective-c 的运行环境
求解决电脑步骤、方法图解网站解决方案
无法共享的宽带怎么搭建WIFI热点
服务器端端口修改了,客户端怎么办
各位大牛!怎么知道本机密码
【】重装系统后文件打不开,如能帮忙帮小弟我恢复文件,必有重谢
计算机有时候黑屏会是什么原因