C++

C++获取指定目录文件列表

2018-07-01  本文已影响0人  刘千予

#include<iostream>

#include<string>

#include<vector>

#include<fstream>

#include<io.h>

#include<direct.h>

/******************************************************************************************

Function: GetFiles

Description: 获取文件列表

Input: folder_path:文件夹路径

Output: files:用于保存文件路径的数组

*******************************************************************************************/

void GetFiles(std::string folder_path, std::vector& files)

{

//文件句柄

//intptr_t hFile = 0;//Win10

long hFile = 0;

//文件信息 

struct _finddata_t fileinfo;

std::string p;

try

{

if ((hFile = _findfirst(p.assign(folder_path).append("\\*").c_str(), &fileinfo)) != -1)

{

do

{

//如果是目录,迭代之 

//如果不是,加入列表 

if ((fileinfo.attrib &  _A_SUBDIR))

{

if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)

GetFiles(p.assign(folder_path).append("\\").append(fileinfo.name), files);

}

else

{

files.push_back(p.assign(folder_path).append("\\").append(fileinfo.name));

}

} while (_findnext(hFile, &fileinfo) == 0);

_findclose(hFile);

}

}

catch (std::exception e)

{

}

}

上一篇下一篇

猜你喜欢

热点阅读