gpt4 book ai didi

c++ - boost::file_system::create_directory 不创建目录,但 ErroCode 成功

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:21 25 4
gpt4 key购买 nike

所以,我正在使用像

这样的简单代码
boost::system::error_code ec;
if (!boost::filesystem::create_directory(out_path.parent_path(), ec)) {
std::cerr << "couldn't create directory\n";
std::cerr << ec.message() << "\n";
return -1;
}

我正在尝试创建将绝对文件路径作为 out_path 传递的目录。结果是,我进入 if 分支,并且 ec.message() 返回成功。我拥有 out_path 目录的所有权限,无论是读取、写入还是执行。

我完全生气了。我可以直接从 bash 创建具有相同路径的目录,但我不能使用我编写的 C++ 代码。然而,当我将相对传递作为 out_path(如“temp”)传递时,并没有失败,并且目录是从运行 c++ 程序的地方创建的。

请帮帮我,我真的不明白这里发生了什么:(

最佳答案

create_directory 返回 false 时,表示它没有创建目录。最可能的原因是该目录已经存在!在这种情况下,它会返回 false,但不会设置 error_code

您问题中的代码假定如果函数返回 false 则发生错误,但这是错误的。 False 仅表示它没有创建它。

关于c++ - boost::file_system::create_directory 不创建目录,但 ErroCode 成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40265207/

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