如何使用 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 中复制目录一样。
【讨论】:
第一步是:#includesystem()
的任务。【参考方案3】:
截至今天,C++17 的 <filesystem>
是正确的解决方案。
#include <filesystem>
int main()
std::filesystem::copy("C:/Users/", "E:/Backup/");
斜杠 (/
) 被解释为目录分隔符,这比双反斜杠 (\\
) 更易于阅读。
【讨论】:
以上是关于如何使用 C++ 复制目录 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
C++:如何仅在父窗口上使用 SetLayeredWindowAttributes()? [复制]