vs2015实现遍历文件夹下的文件夹及文件,返回获得的文件路径列表
时间: 2024-03-22 09:42:00 浏览: 58
遍历文件夹下的文件夹
你可以使用 `FindFirstFile` 和 `FindNextFile` 函数来遍历一个文件夹下的所有文件和子文件夹。
下面是一个示例代码:
```C++
#include <iostream>
#include <windows.h>
#include <vector>
using namespace std;
void GetAllFiles(string path, vector<string>& files)
{
// 在路径后添加通配符 *
path = path + "\\*";
WIN32_FIND_DATAA fileInfo;
HANDLE hFind;
hFind = FindFirstFileA(path.c_str(), &fileInfo);
if (hFind != INVALID_HANDLE_VALUE)
{
do
{
// 跳过 "." 和 ".."
if (strcmp(fileInfo.cFileName, ".") == 0 || strcmp(fileInfo.cFileName, "..") == 0)
continue;
// 拼接文件完整路径
string filePath = path.substr(0, path.length() - 1) + fileInfo.cFileName;
if (fileInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// 递归遍历子文件夹
GetAllFiles(filePath, files);
}
else
{
// 添加文件路径到列表
files.push_back(filePath);
}
} while (FindNextFileA(hFind, &fileInfo));
FindClose(hFind);
}
}
int main()
{
string path = "C:\\test";
vector<string> files;
GetAllFiles(path, files);
for (auto file : files)
{
cout << file << endl;
}
return 0;
}
```
这个函数会遍历 `C:\test` 文件夹下的所有文件和子文件夹,并将所有文件的路径添加到 `files` 列表中。你可以根据自己的需要来修改代码。
阅读全文