复制目录的标准和便携式方式

问题描述 投票:0回答:3

我用c++制作了一个备份程序,但是它使用

system()
命令来批量复制文件。

我正在寻找一种复制整个目录的方法(这不需要创建任何目录,只需复制它们)而不依赖于操作系统相关的调用/API。

例如我要复制

C:\Users\ to E:\Backup\ Or C:\Users\* to E:\Backup\

如果可能的话,您可以在答案中包含一个示例吗?

c++ windows file directory copy
3个回答
12
投票

截至今天,C++17 的

<filesystem>
是正确的解决方案。

#include <filesystem>

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

斜杠 (

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


4
投票

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


3
投票

1)包含.h文件:

#include <csystem>

2)写入cmd:

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

提示:你可以在“ ”中写入所有内容,就像在cmd中复制目录一样。

© www.soinside.com 2019 - 2024. All rights reserved.