for (auto p : std::filesystem::recursive_directory_iterator(get_folder(), std::filesystem::directory_options::skip_permission_denied)) {
const auto path = p.path().string();
std::cout << path << std::endl;
}
因此,以上代码在project1.exe中的0x7FFA77095549处发生未处理的异常崩溃:Microsoft C ++异常:内存位置0x72E42FF360的std :: system_error。在崩溃前进行迭代的最后一个目录是源和可执行文件所在的目录。编辑:获取文件夹只是返回用户文件夹
答案 0 :(得分:0)
已修复!问题是std :: filesystem无法处理从右到左的覆盖(U + 202E),即使使用wstring也不行。那就是我如何解决它的问题
if (p.path().wstring().find(L"\u202E") != std::string::npos)
continue;
const auto path = p.path().string();
std::cout << path << std::endl;