您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章给大家分享的是有关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;
}感谢各位的阅读!关于“C++如何遍历文件夹下的所有文件”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。