在Windows环境下使用C++深度优先递归遍历一个目录,可以使用Windows API函数来实现。\n\n以下是一个示例代码:\n\ncpp\n#include <windows.h>\n#include <iostream>\n#include <string>\n\nvoid TraverseDirectory(const std::string& path)\n{\n WIN32_FIND_DATAA findData;\n HANDLE hFind = FindFirstFileA((path + "\*").c_str(), &findData);\n\n if (hFind != INVALID_HANDLE_VALUE)\n {\n do\n {\n if (strcmp(findData.cFileName, ".") == 0 || strcmp(findData.cFileName, "..") == 0)\n continue;\n\n std::string filePath = path + "\" + findData.cFileName;\n\n if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)\n {\n // 当前文件是目录\n TraverseDirectory(filePath);\n }\n else\n {\n // 当前文件是普通文件\n std::cout << filePath << std::endl;\n }\n } while (FindNextFileA(hFind, &findData));\n\n FindClose(hFind);\n }\n}\n\nint main()\n{\n std::string path = "C:\\your\\directory\\path";\n TraverseDirectory(path);\n\n return 0;\n}\n\n\n在上述代码中,TraverseDirectory函数使用FindFirstFileAFindNextFileA函数来遍历目录下的文件和子目录。如果遇到子目录,则递归调用TraverseDirectory函数,直到遍历完所有文件和子目录。\n\n请将代码中的C:\\your\\directory\\path替换为你要遍历的目录路径。运行程序后,它将输出目录下的所有文件路径。

Windows C++ 深度优先递归遍历目录 - 代码示例

原文地址: https://www.cveoy.top/t/topic/qfmg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录