如何使用 C++ 复制目录 [重复]

Posted

技术标签:

【中文标题】如何使用 C++ 复制目录 [重复]【英文标题】:How to use C++ to Copy A Directory [duplicate] 【发布时间】: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? 【参考方案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/");

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

【讨论】:

以上是关于如何使用 C++ 复制目录 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C++:如何仅在父窗口上使用 SetLayeredWindowAttributes()? [复制]

如何在 C++ 中使用字符串作为变量名? [复制]

使用 devc++ 和 c++ 语言复制文件和目录

如何使用Jenkins shell命令复制文件但不包括某些目录[重复]

如何复制 C++ 指针数据? [复制]

你如何在 C++ 中实现阶乘函数? [复制]