c++利用windows api遍历指定文件夹及其子文件夹中的文件

以下代码在vs2008中测试通过,利用FindFirstFile,FindNextFile函数遍历了我电脑上全路径为“C:\\Users\\v_tianboli\\Desktop\\windows程式设计开发指南”的文件夹,并输出文件夹及子文件夹中的所有文件完整路径到控制台。完整代码如下:

#include "stdafx.h"
#include <iostream>
#include "windows.h"
#include <string.h>
#include <Strsafe.h>
using namespace std;//传入要遍历的文件夹路径,并遍历相应文件夹
void TraverseDirectory(wchar_t Dir[MAX_PATH])    
{WIN32_FIND_DATA FindFileData;HANDLE hFind=INVALID_HANDLE_VALUE;wchar_t DirSpec[MAX_PATH];                  //定义要遍历的文件夹的目录DWORD dwError;StringCchCopy(DirSpec,MAX_PATH,Dir);StringCchCat(DirSpec,MAX_PATH,TEXT("\\*"));   //定义要遍历的文件夹的完整路径\*hFind=FindFirstFile(DirSpec,&FindFileData);          //找到文件夹中的第一个文件if(hFind==INVALID_HANDLE_VALUE)                               //如果hFind句柄创建失败,输出错误信息{FindClose(hFind); return;  }else {while(FindNextFile(hFind,&FindFileData)!=0)                            //当文件或者文件夹存在时{if((FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)!=0&&wcscmp(FindFileData.cFileName,L".")==0||wcscmp(FindFileData.cFileName,L"..")==0)        //判断是文件夹&&表示为"."||表示为"."{continue;}if((FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)!=0)      //判断如果是文件夹{wchar_t DirAdd[MAX_PATH];StringCchCopy(DirAdd,MAX_PATH,Dir);StringCchCat(DirAdd,MAX_PATH,TEXT("\\"));StringCchCat(DirAdd,MAX_PATH,FindFileData.cFileName);       //拼接得到此文件夹的完整路径TraverseDirectory(DirAdd);                                  //实现递归调用}if((FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)==0)    //如果不是文件夹{wcout<<Dir<<"\\"<<FindFileData.cFileName<<endl;            //输出完整路径}}FindClose(hFind);}
}int _tmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] )
{locale loc( "chs" );                //支持中文输出,否则wchar可能无法输出值为中文的变量wcout.imbue( loc );TraverseDirectory(L"C:\\Users\\v_tianboli\\Desktop\\windows程式设计开发指南");         //遍历指定的文件夹,此处文件路径可按具体情况修改system("pause");return 0;
}


以上代码在我电脑上运行结果如下:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

某释放驱动的样本分析及手杀报告

此为样本文件下载链接&#xff1a;http://download.csdn.net/detail/cs08211317dn/3982364&#xff0c;压缩包解压缩密码为&#xff1a;virus。 今天花了1个多小时分析了一款名为123.exe的病毒&#xff0c;觉得挺有意思的&#xff0c;于是顺手写个手杀报告&#xff0c;以备以后…

CentOS 7.2 安装zabbix 3.4

一、zabbix版本选择及部署环境说明 1、zabbix版本选择 zabbix官网地址&#xff1a;www.zabbix.com zabbix每半年发布一个长期支持版&#xff0c;目前长期支持版有2.0、3.0等&#xff0c;所以选择zabbix版本建议选择长期支持版&#xff0c;除非有特殊需求。 2、部署环境环境说明…

吴恩达机器学习笔记(二) —— Logistic回归

主要内容&#xff1a; 一.回归与分类 二.Logistic模型即sigmoid function 三.decision boundary 决策边界 四.cost function 代价函数 五.梯度下降 六.自带求解函数 七.多分类问题 一.回归与分类 回归&#xff1a;用于预测&#xff0c;输出值是连续型的。例如根据房子的大小预测…

弹出选择文件夹的对话框 BROWSEINFO 的用法【MFC】

以下是在vs2008中编译通过的代码&#xff0c;代码注释详细。要实现的功能是点击“浏览”按钮&#xff0c;即弹出选择文件夹的对话框。并将选择的文件夹或文件路径显示在MessageBox中。 void CMFC_TrojanKillerDlg::OnBnClickedButton1() {// TODO: 在此添加控件通知处理程序代码…

regini.exe使用方法

创建一个名称test 类型reg_dword 数据1 如果是只有那会默认以类型reg_sz创建 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ys test reg_dword 1 2。注册表键数值 [更改的权限] 例如: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run…

计算机寄存器及标志位详解

以下是计算机内部寄存器阵列图&#xff1a; 以下FR控制标志位及其含义&#xff1a; 1. CF 进位标识位 进行加减运算时, 如果最高二进制位产生进位或错位, CF则为1, 否则为0. 程序设计中, 常用条件转移指令JC, JNC指令据此标志位实现转移 2. PF 奇偶标志位 操作结果…

NOIP 2010 引水入城

P1514 引水入城 题目描述 在一个遥远的国度&#xff0c;一侧是风景秀美的湖泊&#xff0c;另一侧则是漫无边际的沙漠。该国的行政区划十分特殊&#xff0c;刚好构成一个 NN 行 \times MM 列的矩形&#xff0c;如上图所示&#xff0c;其中每个格子都代表一座城市&#xff0c;每座…

前段mui框架初识

由于需要了解了一下mui框架&#xff0c;感觉没有想象的那么好 mui引入过后就要生成他自己的滚动条 而且 不能获取页面的高度 非屏幕的高度 mui上拉加载是会有卡顿现象的 &#xff0c; 这段代码执行完之后会有比较严重的手机段拖动卡顿现象 解决办法 给他设置滚动系数&#…

关于(int argc char **argv)

演示使用opencv显示一幅图片&#xff1a; #include <iostream> #include <core/core.hpp> #include <highgui/highgui.hpp> using namespace std; using namespace cv; void main(int argc,char **argv) {Mat imageimread(argv[1]);imshow("Lena",…

Pytorch中的Batch Normalization操作

之前一直和小伙伴探讨batch normalization层的实现机理&#xff0c;作用在这里不谈&#xff0c;知乎上有一篇paper在讲这个&#xff0c;链接 这里只探究其具体运算过程&#xff0c;我们假设在网络中间经过某些卷积操作之后的输出的feature map的尺寸为4322 4为batch的大小&…

regsvr32.exe

regsvr32.exe用于注册Windows操作系统的动态链接库和ActiveX控件。 regsvr32.exe 文件建议修改权限&#xff0c;删除所有的用户只保存Administrators 和SYSTEM为所有权限 regsvr32.exe是32位系统下使用的DLL注册和反注册工具&#xff0c;使用它必须通过命令行的方式使用&#x…

一个注册为输入法的木马分析

我已把此木马样本传到以下链接&#xff1a;http://download.csdn.net/detail/cs08211317dn/4096819 一&#xff0e;大致描述&#xff1a; 1. 样本名称&#xff1a;z.exe 2. 家族名&#xff1a; PWS:Win32/Zuten.gen!D(MIcrosoft) 3. MD5&#xff1a;E298C3…

使用fiddler的过滤条件

使用fiddler抓包的时候经常一下子显示很多的记录&#xff0c;看的眼花缭乱&#xff0c;需要这时候需要使用过滤条件来帮助你&#xff0c;一般常用的有三种过滤条件&#xff1a; 1.域名过滤&#xff0c;只显示特定域名的记录&#xff1a; *.baidu.com表示所有的百度二级域名会话…

IceSword偏门功能介绍

&#xff08;1&#xff09;进程窗口中单击右键&#xff0c;选择“内存读写”&#xff0c;弹出如下对话框&#xff1a; 输入起始地址和长度就可以读写内存&#xff0c;以及对这段内存进行反汇编。 &#xff08;2&#xff09;用IceSword的监视进线程创建和监视进程终止功能&…

【Apache】Apache ab压力测试工具Window下载和用法详解

ab是apache自带的网站压力测试工具。 使用起来非常的简单和方便。 不仅仅是可以apache服务器进行网站访问压力测试&#xff0c;还可以对其他类型的服务器进行压力测试。 比如nginx,tomcat&#xff0c;IIS等 首先当然是下载安装了。 在这里只讲window下在下载安装 官方下载地址&…

中华黑豹增强版木马分析

样本网址&#xff1a;http://download.csdn.net/detail/cs08211317dn/4144024 一&#xff0e; 大致描述&#xff1a; 1. 样本名称&#xff1a;中华黑豹增强版.exe 2. 家族名&#xff1a; TrojanDownloader:VBS/Lnkget.D(Microsoft) 3. MD5&#xff…

epoll源码分析

epoll源码分析 最近在使用libev过程中遇到一个场景&#xff1a;一个fd从一个ev_loop迁移到另一个ev_loop&#xff0c;会出现这个fd同时存在两个epoll的瞬间。不禁要问了&#xff0c;一个fd同时被两个epoll监视的行为是怎样的&#xff0c;epoll嵌套使用是怎样实现的&#xff1f;…

用windows api 计算文件的md5值

我自己封装了一个函数GetMd5(LPCWSTR FileDirectory)。其中调用了windows api&#xff1a;CryptAcquireContext&#xff0c;CryptCreateHash,CryptHashData等。要计算不同文件的md5值&#xff0c;只需在调用此函数时传入不同文件的全路径即可&#xff0c;不需要额外的dll。示例…

用EnumProcesses()枚举进程

参照msdn的例子&#xff0c;用EnumProcesses&#xff08;&#xff09;枚举进程并输入进程名和句柄。以下代码在vs2008中测试通过&#xff1a; #include "stdafx.h" #include <windows.h> #include "psapi.h" #pragma comment (lib, "psapi.…

利用Tomcat运行一个JSP页面 详细步骤

1.启动Tomcat: 在Tomcat安装目录下的bin文件夹中&#xff0c;运行startup.bat批处理文件。截图如下&#xff1a; 此时会自动弹出窗口&#xff1a; 不要关闭这个窗口。 2.测试Tomcat是否启动成功。 打开浏览器&#xff0c;在地址栏中输入http://localhost:8080&#xff08;Tom…