方法一:http://blog.csdn.net/sjt19910311/article/details/50519935
#include <filesystem>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
using namespace std::tr2::sys;
vector<string> fileLists;
directory_iterator it("E:\\projects\\ConsoleApplication3\\ConsoleApplication3\\pcdfiles\\");
while (it != directory_iterator()){
string tmp = it->path().string();
std::cout << tmp << '\n';
fileLists.push_back(tmp);
++it;
}
return 0;方法二:http://blog.csdn.net/tzhangofseu/article/details/6550373
#include <stdio.h>
#include <string.h>
#include <io.h>
#include <direct.h>
const int kMaxNum = 256; // 最大文件个数
const int kMaxLength = 20; // 文件名的最大长度
char fileName[kMaxNum][kMaxLength];
int fileNum = 0; // 文件个数-1
// 获取目录文件名,并存在二维数组里面
void GetDirFiles(const char *dir)
{
long file;
struct _finddata_t find;
_chdir("d://");
if((file=_findfirst("*.*", &find))==-1L) {
printf("空白!/n");
return;
}
fileNum = 0;
strcpy(fileName[fileNum], find.name);
while(_findnext(file, &find)==0)
{
++fileNum;
strcpy(fileName[fileNum], find.name);
}
_findclose(file);
}
int main()
{
int i;
GetDirFiles("c://");
for (i = 0; i <= fileNum; ++i) {
printf("%s/n", fileName[i]);
}
return 0;
}
本文介绍了两种使用C++实现的目录遍历方法。方法一利用了C++17标准库中的`<filesystem>`,通过迭代器遍历指定路径下的所有文件并存储到vector容器中。方法二则采用了传统方式,利用`_findfirst`和`_findnext`函数获取目录下所有文件名,并存储在二维字符数组中。

845

被折叠的 条评论
为什么被折叠?



