爱易网
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 浏览次数:20993 次
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软路由设置请问
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
(最新)Windows 八 Metro 应用开发的入门 Metro App的几个新控件
把tomcat服务器配置替windows服务的方法
怎么给文件夹图标增加小图标
Windows关机画面怎么改变
Windows批处理文件实现FTP轮询机制,该怎么解决
windows7在启动的时候有两个用户,如何样禁用Administrator
msn 上不了,该如何解决
server 2003 ftp 访问登录失败解决方法
小弟我不小心把windowsXP系统应用程序的打开方式都变成了画图,如何恢复?
推荐阅读
更多>
咨询群集的使用方法和相关方案!解决办法
windows api编程写得UI能作到什么地步
在 Windows XP 中修补损坏的 Winsock2,网上其他方法都是浮云
主流杀毒软件进程名解决方法
Windows Search服务高负荷读写硬盘的有关问题
笔记簿关机时出现Windows 损坏的图像!不能关机!
2003系统,系统刚刚开机后IE是可以打开网页的,过了一会儿就不能打开了,没有任意提示
sniffer使用的有关问题:只能抓本机的包和广播包吗
启用打印机池,选中两个端口,怎么将打印端口进行排序,默认优先打到LPT1:端口,怎么默认先打到网络打印机端口,如果此端口忙再打印到LPT1:口,多谢
新装windows2008,其余电脑无法找到该机
VmWare “Cannot find a valid peer process to connect to”,该如何解决
windows8晋级超便宜
小弟我想装多系统。问大家一个系统启动的对小弟我来说非常重要的关键有关问题!还请高手指教
xcopy怎么去掉提示 提示目标是文件还是文件加
win7访问NFS服务器的有关问题
vpdn政务网中的sql server设置有关问题
两台远程机器A和B,A通过B共享上网如何实现
关于 guest 联网 有关问题
Windows 7 64位旗舰版上 工商银行旧版金邦达U盾的无法使用的解决办法(转)
急请教怎么上载这里的东西