首页 > 解决方案 > 使用 std::filesystem 替换文件

问题描述

经常有一个模式

  1. 将输出写入临时文件(bla.txt.tmp)
  2. 删除原始文件(rm bla.txt)
  3. 重命名一个新的(bla.txt.tmp -> bla.txt)

std::filesystem 中是否有任何实用程序函数可以执行此操作,或者我需要使用重命名和删除来逐个执行步骤。

标签: c++c++17std-filesystem

解决方案


不,标准库中没有这样的实用功能。不过,每个步骤都可以完成,std::filesystem您可以自己编写这样的实用函数。

std::filesystem::rename确实在一次调用中执行了第 2 步和第 3 步,但必须单独创建新文件。


推荐阅读