爱易网
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 浏览次数:21013 次
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); // ... // ... }
没有任何复杂的操作,只为备忘。
上一篇:hyper-v管理器中-虚拟机-连接不上,看不到画面
下一篇: Win200软路由设置请问
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
酒楼 h3cER8300路由器下,接交换机,在接无线路由上不了网
win7上安装VMware失败
求windows2003架设IPSec VPN服务器详细课程
Windows 7升级有关问题
Windows7 家庭版Administrator账户找不到,该如何处理
历程数据无法读取
系统重装后,已加密的WORD文档无法打开,求解决方案
Windows下Nginx的起动、停止等基本命令
承蒙大家和版主抬爱,就任MS OFFICE版小版主,散分。该怎么解决
推荐阅读
更多>
路由器转发包的时候包含哪些信息?解决思路
bat删除文件夹解决方法
activex存在何處?该如何处理
关于C:\Documents and Settings\Administrator\Local Settings\Temp与C:\WINDOWS\Temp解决方法
电脑圆桌面什么都没了
求教取当前日期及时间的脚本,该怎么解决
磁盘共享有关问题
求教,小弟我电脑是不是中病毒了
3389连不上,该怎么处理
利用Windows闲空时间绘制随机大小和颜色的矩形
Windows上免安装版多Tomcat5多服务配置多启动(Tomcat6可参考)
新年新有关问题~请
记录一个openssl在windows上面测试
ico图标有关问题
windows相关程序(记事本、chm文档、文本文档等)打不开!该如何解决
哪位有windows2003server简体中文版的序列号解决办法
~能否不用重装系统前提下,将NTFS格式分区的部分空间分给FAT32分区(系统盘)?该如何解决
如何用代码修改IP地址,并且要同时修改两个IP,小弟我只知道如何修改一个IP
IT单位科别划分
jdk上载以及Windows 安装