遍历可执行文件所在目录下的指定类型的文件

示例:遍历可执行文件目录下指定的txt类型的文件,编译环境vs2010,项目类型控制台输出程序;
代码实现:
main.cpp

// DocumentTraveral_demo.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <io.h>
using namespace std;//wchar_t转换为string
void Wchar_tToString(std::string& szDst, wchar_t *wchar)
{wchar_t * wText = wchar;DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,wText,-1,NULL,0,NULL,FALSE);// WideCharToMultiByte的运用char *psText; // psText为char*的临时数组,作为赋值给std::string的中间变量psText = new char[dwNum];WideCharToMultiByte (CP_OEMCP,NULL,wText,-1,psText,dwNum,NULL,FALSE);// WideCharToMultiByte的再次运用szDst = psText;// std::string赋值delete []psText;// psText的清除
}//获取当前文件的路径
string GetFilePath()
{wchar_t filePath[100];string strFilePath;DWORD ret = GetModuleFileName(NULL,filePath,100);//GetCurrentDirectory();获取可执行文件所在绝对路径if (ret != 0)//不等于0 成功{Wchar_tToString(strFilePath,filePath);       }else//返回值为0失败{strFilePath = "文件的路径为空!";} return strFilePath;
}//获取某文件所在路径中的文件夹路径,即F:\self_study\DocumentTraveral_demo\Debug\1.txt 函数返回F:\self_study\DocumentTraveral_demo\Debug\
string GetFileDir(string strPath)
{int nPos = strPath.find_last_of('\\');strPath = strPath.substr(0,nPos+1);return strPath;
}
//遍历指定文件夹strPath下指定类型*.txt的文件void DocumentTraveral(string &strPath){struct _finddata64i32_t fileInfo;char data[100];memset(data,0,100);FILE * fp;string strTemp = strPath;string str = strTemp;long handle = _findfirst(strPath.append("*.txt").c_str(),&fileInfo);if(handle != -1){do {fp = fopen(strTemp.append(fileInfo.name).c_str(),"r");if (fp != NULL){while (!feof(fp))//文件到尾为真{fgets(data,sizeof(data),fp);cout<<"文件的内容:"<<data<<endl;}fclose(fp);strTemp = str;}} while (_findnext(handle,&fileInfo) != -1);     //失败-1,成功0  _findclose(handle);}  }int _tmain(int argc, _TCHAR* argv[])
{string strFilePath = GetFilePath();string strPath = GetFileDir(strFilePath);DocumentTraveral(strPath);system("pause");return 0;
}

总结:
此博文中涉及到文件夹遍历,文件打开读写关闭相关的,字符串截取操作,做以记录,方便使用。

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

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

相关文章

开发者如何快速精简容器云镜像?| 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;阿木接触过容器云或者用过容器的同学一般都会遇到容器镜像占用空间很大的问题&#xff0c;遇到此类问题的时候大部分同学可能更加习惯于为容器的镜像仓库增加磁盘空间&#xff0c;当然这种方式无可厚非&#xff0c;…

Linux环境 Jenkins集成构建SonarQube

参考链接&#xff1a; https://www.linuxhub.org/?p4450 https://blog.51cto.com/damaicha/2118766 https://max.book118.com/html/2019/0107/8067110025002000.shtmJenkins集成构建SonarQube 一、前提准备 应用服务器apache-tomcat-9.0.20.tar.gzjenkinsjenkins.warmysql版…

Windows OpenGL ES 图像对比度调节

目录 一.OpenGL ES图像对比度调节 1.原始图片2.效果演示 二.OpenGL ES 图像对比度调节源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基…

dubbo之.xml配置文件报错

【dubbo之.xml配置文件报错】Multiple annotations found at this line: - cvc-complex-type.2.4.c: The 异常现象&#xff1a; 1.dubbo配置xml文件报错 “Multiple annotations found at this line:- cvc-complex-type.2.4.c: The matching wildcard is strict, but no decl…

验证电脑的字节序

字节序的分类 大端字节序&#xff1a;低地址存高位&#xff0c;高地址存底位&#xff0c;网络字节序又叫大端端字节序&#xff1b; 小端字节序&#xff1a;低地址存地位&#xff0c;高地址存高位&#xff1b; 验证示例 记录2个示例来说明电脑采用的大端字节序还是小端字节序…

刚刚出新的Kubernetes 却曝出了“高危”安全漏洞;亚马逊将推免费新闻视频服务,对标苹果 | 极客头条...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 被宣布取消的AirPower&#xff08;图片来源网络&#xff09;【4月1日 星期一】云の声音5G最极致的应用领域应该是8K电视。——富士康科技集团副总裁、富士康企业大学创校校长 陈振国…

Maven实战手册

一、maven的作用&#xff1a; 1.1jar包的统一依赖管理&#xff0c;节省空间1.2项目的一键构建 二、Maven能做什么&#xff1f; 2.1编译 测试(junit) 运行 打包 部署 三、Maven的安装配置署 3.1下载安装3.2 官网链接&#xff1a;http://maven.apache.org/download.cgi 3.3下…

Windows OpenGL 图像对比度调节

零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 转场 零基础 OpenGL ES 学习路线推荐…

大端字节序与小端字节序的转换

逐步加深对字节操作的理解&#xff0c;记录一下大端字节序与小端字节序的转换&#xff0c;开发环境是vs2010&#xff0c;项目类型是控制台输出程序&#xff0c;下面是代码实现&#xff1a; // ByteOrder_demo.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h&q…

2019年技术盘点微服务篇(一) | 程序员硬核评测

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;孙浩峰过去几年来&#xff0c;“微服务架构”方兴未艾&#xff0c;尽管这种架构风格没有确切的定义&#xff0c;但我们已经看到许多项目凭借此架构取得了积极的结构&#xff0c;因此对于许多开发者来说&#xff0c;…

Oracle11g创建表空间语句

在plsql工具中执行以下语句&#xff0c;可建立Oracle表空间。 /*分为四步 */ /*第1步&#xff1a;创建临时表空间 */ create temporary tablespace yuhang_temp tempfile D:\oracledata\yuhang_temp.dbf size 50m autoextend on next 50m maxsize 20480m extent mana…

简记模态对话框和非模态对话框

模态对话框和非模态对话框的区别 模态对话框会阻止与其它窗口的交互&#xff0c;而非模态对话框不会。即模态对话框显示的时候&#xff0c;不能操作其它窗口&#xff0c;要想操作其它窗口&#xff0c;必须关闭该模态对话框&#xff1b;非模态对话框显示的时候&#xff0c;可以…

虚拟化精华问答 | 虚拟化的关键技术有哪些?

在实际的生产环境中&#xff0c;虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用&#xff0c;透明化底层物理硬件&#xff0c;从而最大化的利用物理硬件。今天就让我们一起来看看关于虚拟化的精华问答吧。1Q&#xff1a;什么是虚拟化&#xf…

idea工具拉取GitHub远程代码

需求&#xff1a;idea工具拉取GitHub远程代码&#xff1a; 项目代码地址&#xff1a; gitgithub.com:gb-heima/createNewProject.git可以先进行test测试连接情况&#xff1a;

Windows OpenGL ES 图像饱和度调节

目录 一.OpenGL ES 图像饱和度调节 1.原始图片2.效果演示 二.OpenGL ES 图像饱和度调节源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基…

Qt编译时出现“could not parse styleSheet”

当程序在编译时提示“could not parse styleSheet”时的解决方案&#xff1a; 此问题可能是QSS文件中出现了语法错误&#xff0c;需要查看QSS文件中是否存在分号未加的情况。在QSS文件未出现语法错误的情况下&#xff0c;删除项目下编译生成的Debug和Release目录下的所有文件&…

云重磅 | 阿里巴巴平均每天纳税超1.4亿;谷歌、Face book与AWS将共建美欧新海底电缆;阿里发布谣言粉碎机:1秒辨真伪...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周二第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

远程GitHub中的项目拉取到本地

需求&#xff1a;远程GitHub中的项目拉取到本地&#xff1a; 有2种方式&#xff1a; 第1种&#xff1a;直接下载到本地&#xff1a; 第2种(建议使用)&#xff1a; 通过git工具&#xff0c;进行远程拉取代码&#xff0c;前提已安装了git 项目代码地址&#xff1a; gitgithu…

Windows OpenGL 图像饱和度调节

目录 一.OpenGL 图像饱和度调节 1.原始图片2.效果演示 二.OpenGL 图像饱和度调节源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 Op…

信号槽绑定时出现未有匹配的connect()函数

信号槽在使用的过程中&#xff0c;出现没有找到匹配的connect()函数&#xff0c;在检查参数无误后&#xff0c;可能出现的原因便是&#xff0c;信号的重载&#xff0c;为此需要指定绑定的是那种参数的信号。 例如在spinbox的使用时&#xff0c;对于信号valueChanged()有两个重…