gpt4 book ai didi

c++ - copy_file 何时实际返回 false?

转载 作者:太空狗 更新时间:2023-10-29 20:50:44 28 4
gpt4 key购买 nike

std::filesystem::copy_file 的简单版本具有以下签名:

bool copy_file(const path& from, const path& to);

返回值描述为:

true if the file was copied, false otherwise.

这通常是有道理的,您可能希望用 if 包装调用并在操作失败时报告错误,如下所示:

if (!fs::copy_file(inputImage, outputImage))
{
LOG(error) << "Failed to copy file:" << inputImage << " ==> " << outputImage;
}

但是,如果您查看异常文档:

The overload that does not take a std::error_code& parameter throws filesystem_error on underlying OS API errors, constructed with from as the first path argument, to as the second path argument, and the OS error code as the error code argument.

这引出了我的问题,如果失败,例如权限不足、文件锁定和其他文件系统错误导致异常,那么简单的 copy_file 在什么情况下会返回 错误

最佳答案

原因是 copy_file(a,b) 只是对 copy_file(a,b,copy_options::none) 的重载,它将始终返回 true 抛出异常。但是,当您使用例如 copy_file(a,b,copy_options::skip_existing) 时,您也可以毫无异常(exception)地收到有效的 false,因此您知道目标文件已经存在.

关于c++ - copy_file 何时实际返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53389505/

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