#include <iostream>
#include <vector>
#include <string>
#include <windows.h>
std::vector<std::string> GetFilePaths(const std::string& directoryPath)
{
std::vector<std::string> filePaths;
std::string searchPattern = directoryPath + "\\*";
WIN32_FIND_DATAA findData;
HANDLE hFind = FindFirstFileA(searchPattern.c_str(), &findData);
if (hFind == INVALID_HANDLE_VALUE)
{
std::cerr << "Failed to find first file in directory: " << directoryPath << std::endl;
return filePaths;
}
do
{
if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// Skip "." and ".." directories
if (strcmp(findData.cFileName, ".") == 0 || strcmp(findData.cFileName, "..") == 0)
continue;
std::string subDirectoryPath = directoryPath + "\\" + findData.cFileName;
std::vector<std::string> subDirectoryFilePaths = GetFilePaths(subDirectoryPath);
filePaths.insert(filePaths.end(), subDirectoryFilePaths.begin(), subDirectoryFilePaths.end());
}
else
{
std::string filePath = directoryPath + "\\" + findData.cFileName;
filePaths.push_back(filePath);
}
} while (FindNextFileA(hFind, &findData));
FindClose(hFind);
return filePaths;
}
int main()
{
std::string directoryPath = "D:/ALearn/work/hashTest";
std::vector<std::string> filePaths = GetFilePaths(directoryPath);
for (const auto& filePath : filePaths)
{
std::cout << filePath << std::endl;
}
return 0;
}
11-04
1363
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
09-08
5774
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
04-12
638
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交