- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
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/
std::filesystem::copy_file 的简单版本具有以下签名: bool copy_file(const path& from, const path& to); 返回值描述为: tr
我想将一个文件复制到另一个文件,我想使用 Boost::copy_file。它有一个名为 copy_option 的参数,可以是: BOOST_SCOPED_ENUM_START(copy_opt
我在使用 copy_file 函数时遇到了一些问题。我的程序非常简单,我只是试图将一个文本文件从一个地方复制到另一个地方。 以下代码会出现“调试错误!”因为调用了 abort()。 int main(
Windows API 函数 CopyFile 有一个参数 BOOL bFailIfExists,允许您控制是否要覆盖目标文件(如果存在)。 boost::filesystem copy_file 函
我无法弄清楚为什么我的文件无法复制。这是代码的一小部分: (dir_itr 是 directory_iterator & root 是路径) if (!(is_directory(dir_itr->p
我正在制作 gem 将文件从 /template 目录(在 gem 内)复制到控制台的当前目录中。 这是它的样子: require "fileutils" # Get the console's cu
我想将一个文件从一个目录复制到另一个目录,但我的程序总是因为某些原因而中止。之前有没有人这样做过,可以告诉我哪里出了问题吗?我怎么能捕捉到copy_file抛出的异常,我查看了boost网站,但我找不
如果 Boost 编译时没有 C++11 支持 boost::filesystem使用模拟范围枚举器。如果您随后将这个构建的 Boost 并在支持 C++11 的项目中使用它,您最终会得到一个丢失的符
描述:我正在尝试将目录中的所有文件移动到某个(用户选择的目录),基于它们通过 boost 文件系统扩展到某个目录。问题:当 boost 文件系统的 rename/copy_file 方法被命中时,我收
为了将目录中的所有文件复制到子目录中,我编写了以下例程然后删除它们,但我一直在 copy_fail 上拒绝访问,这看起来误导了我。路径正确,文件存在且权限在刚刚创建的目标目录中不是只读的。 有什么建议
我不知道为什么 boost::filesystem::copy_file 会给我带来麻烦。 undefined reference to `boost::filesystem::detail::cop
使用 boost_1_53_0 我遇到了上述错误。但有趣的是,我还使用了 boost::filesystem::create_directory 和 boost::tokenizer<>::itera
这段代码中std::filesystem::copy()和std::filesystem::copy_file()有什么区别? #include void testing() { const
我是一名优秀的程序员,十分优秀!