C++遍历文件夹下的所有文件
数据分多个文件存储,读取数据就需要对多个文件进行操作。首先就需要定位到文件的名字,之后再对文件进行相应的读写操作。多次涉及多文件的读写操作,现将这个实现总结一下,方便自己和他人使用。具体代码如下:
#include "stdafx.h"
#include <stdio.h>
#include<iostream>
#include<vector>
#include <Windows.h>
#include <fstream>
#include <iterator>
#include <string>
using namespace std;#define MAX_PATH 1024 //最长路径长度/*---------------------------- * 功能 : 递归遍历文件夹,找到其中包含的所有文件*---------------------------- * 函数 : find* 访问 : public * * 参数 : lpPath [in] 需遍历的文件夹目录* 参数 : fileList [in] 以文件名称的形式存储遍历后的文件 */
void find(char* lpPath,std::vector<const std::string> &fileList)
{char szFind[MAX_PATH];WIN32_FIND_DATA FindFileData;strcpy(szFind,lpPath);strcat(szFind,"\\*.*");HANDLE hFind=::FindFirstFile(szFind,&FindFileData);if(INVALID_HANDLE_VALUE == hFind) return;while(true){if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){if(FindFileData.cFileName[0]!='.'){char szFile[MAX_PATH];strcpy(szFile,lpPath);strcat(szFile,"\\");strcat(szFile,(char* )(FindFileData.cFileName));find(szFile,fileList);}}else{//std::cout << FindFileData.cFileName << std::endl;fileList.push_back(FindFileData.cFileName);}if(!FindNextFile(hFind,&FindFileData)) break;}FindClose(hFind);
}int main()
{std::vector<const std::string> fileList;//定义一个存放结果文件名称的链表//遍历一次结果的所有文件,获取文件名列表find("XXXX具体文件夹目录",fileList);//之后可对文件列表中的文件进行相应的操作//输出文件夹下所有文件的名称for(int i = 0; i < fileList.size(); i++){cout << fileList[i] << endl;}cout << "文件数目:" << fileList.size() << endl;return 0;
}
测试了一下,目标文件夹下的文件名称存在了fileList容器中,根据读取的文件名称,可对文件进行相应的操作,输出结果如下所示:
C++遍历文件夹下的所有文件相关推荐
- C#遍历得到指定文件夹下的所有文件和子文件夹
1.遍历指定文件夹下的所有文件 string path = Application.StartupPath + "\\data\\采集数据\\"; DirectoryInfo ro ...
- python遍历指定文件夹的所有文件_python 统计指定文件夹下所有的文件数量,BFS方式...
python 统计指定文件夹下所有的文件数量 本来一直是有这个需求,只是以前写的是递归的方式处理,感觉对资源的占用不友好,而且python的最大递归深度不超过1000,所以改了一下,这里用广度优先遍历 ...
- java 文件 递归_JAVA实现遍历文件夹下的所有文件(递归调用和非递归调用)
JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = ...
- C/C++遍历Windows文件夹下的所有文件
因为文件夹中往往包含文件和文件夹.想要遍历所有的文件,必须遍历文件夹中所有的文件夹.很显然,这个描述满足递归的两个要素:(1)问题的规模在不断的缩小,且新问题的模式与旧问题相同.很显然文件夹中含有子文 ...
- 遍历读取文件夹下的所有文件
遍历读取文件夹下的所有文件 例如,读取文件夹下,子文件夹的所有的jpg文件: import glob path = "./database/20230302/night/*/*.jpg&qu ...
- 深入探讨:linux中遍历文件夹下的所有文件
深入探讨:linux中遍历文件夹下的所有文件 http://www.jb51.net/article/37664.htm
- c语言 遍历文件夹中所有文件名,C# 遍历文件夹下所有子文件夹中的文件,得到文件名...
假设a文件夹在F盘下,代码如下.将文件名输出到一个ListBox中 using System.Data; using System.Drawing; using System.Linq; using ...
- c++ 遍历文件夹下的所有文件
遍历文件夹下的所有文件:代码实现 #include <iostream> #include <dirent.h> #include <vector> #includ ...
- java遍历文件夹下的_Java遍历文件夹下的所以文件
利用Java递归遍历文件夹下的所以文件,然后对文件进行其他的操作.如:对文件进行重命名,对某一类文件进行重编码.可以对某一工程下的全部.java文件进行转码成utf-8等 代码如下,这里只对文件进行重 ...
- python遍历文件夹下所有excel文件_读取某文件夹下所有excel文件 python
import os import pandas as pd from sklearn import linear_model path = r'D:\新数据\每日收益率' filenames = os ...
最新文章
- linux下关于mysqldump备份的.sql导入数据库表数据丢失优化
- Cissp-【第3章 安全工程】-2021-2-22(269页-289页)
- 新网站如何做好前期SEO优化?
- 机器学习第九篇:详解Adaboost算法
- 新春大吉,2017 Make .NET Great
- SQLite与Sql Server的语法差异(转载)
- Three Memory Management Models
- 逾845.5万枚XRP从币安交易所转入未知钱包,价值超过496万美元
- windows应用迁移到linux下
- 阿里云服务器如何进行网站域名解析?
- 回顾:饶毅教授的一次采访
- 磁珠 符号_如何理解电子元件磁珠?
- 还在为满意的渐变色发愁吗?10+个网站帮你轻松实现
- ESP8266学习——HW Timer
- 如果你是我眼中一滴泪,那么我永远不会哭
- 内存按字节 (Byte)编址,地址从A0000H到DFFFFH,共有多少个字节呢?
- 标准C库函数之perror()、strerror(),以及他们之间各种的优缺点(打印错误信息)
- java eventbus_Guava学习笔记:EventBus
- 华为桌面关闭移动服务器,华为手机桌面防移动可以锁定设置
- 计算机网络-数据链路层(超级无敌详细)
热门文章
- python网易云爬虫网络技术的意义_Python3爬虫实战之网易云音乐
- 用python编写AutoCAD插件日志
- ping不通百度 ubuntu_Ubuntu不可以ping百度,但是可以ping通其ip
- Neural Networks and Deep Learning - 神经网络与深度学习 - Overfitting and regularization - 过拟合和正则化
- 前端应该掌握的Mysql
- lumerical安装教程
- flume高并发优化——(9)配置文件交由zookeeper管理
- 用openlayers3绘图(点、线、圆、正方形....)
- autojs之酷炫字体效果
- CentOS7.2下一键安装Openstack