【问题标题】:How to use C++ to Copy A Directory [duplicate]如何使用 C++ 复制目录 [重复]
【发布时间】:2012-12-31 22:33:07
【问题描述】:

我用c++做了一个备份程序,但是它使用System()命令批量复制文件。

我正在寻找一种复制整个目录的方法(这不需要创建任何目录,只需复制它们)。或者,复制目录中的所有内容。

比如我要复制C:\Users\ to E:\Backup\ Or C:\Users\* to E:\Backup\

如果可能的话,您能否在答案中包含一个示例。

非常感谢!

【问题讨论】:

  • 还是 C++11?或者是否可以接受仅限 Windows 的解决方案?没有 C++03 标准解决方案。
  • 只有 Windows 的解决方案很好!
  • 不确定是否适用于 Windows 8?
  • 如果你真的想用 ACL 和这样的信息备份所有东西,我认为你不能轻易写出比robocopy /b更好的程序
  • 我会看看,你建议如何集成 robocopy?

标签: c++ windows file directory copy


【解决方案1】:

使用 System 的方法不会独立于平台。我强烈建议使用 boost::filesystem 来完成此类任务。

【讨论】:

    【解决方案2】:

    1) 包含 .h 文件:

    #include <csystem>
    

    2) 编写cmd:

    system("copy c:\users\ e:\Backup\");
    

    提示:你可以在 " " 中写任何东西,就像你在 cmd 中复制目录一样。

    【讨论】:

    • 第一步是:#include
    • 当您阅读问题时,您会发现 OP 已经解决了调用system() 的任务。
    【解决方案3】:

    截至今天,C++17 的 &lt;filesystem&gt; 是正确的解决方案。

    #include <filesystem>
    
    int main()
    {
        std::filesystem::copy("C:/Users/", "E:/Backup/");
    }
    

    斜杠 (/) 被解释为目录分隔符,这比双反斜杠 (\\) 更易于阅读。

    【讨论】:

      猜你喜欢
      • 2020-01-27
      • 2018-05-09
      • 2010-12-13
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 2015-10-01
      • 2012-01-25
      • 2014-05-12
      相关资源
      最近更新 更多