gpt4 book ai didi

c++ - 迭代可执行文件本身时,std::filesystem::recursive_directory_iterator 崩溃

转载 作者:行者123 更新时间:2023-11-28 04:22:35 25 4
gpt4 key购买 nike

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。它在崩溃之前迭代的最后一个目录是源代码和可执行文件所在的目录。编辑:获取文件夹只返回用户文件夹

最佳答案

修复了!问题是 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;

关于c++ - 迭代可执行文件本身时,std::filesystem::recursive_directory_iterator 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55092205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com