【问题标题】:Copying directories with all its childrens using CopyFile function使用 CopyFile 函数复制目录及其所有子目录
【发布时间】:2021-04-11 21:46:18
【问题描述】:

有没有办法使用 winapi 复制目录及其所有子目录(可能从一个逻辑磁盘到另一个逻辑磁盘)。 CopyFile 函数只复制文件。我该怎么做?也许有另一个为此任务设计的 winapi 函数,或者可能有 CopyFileCreateDirectory 函数的递归解决方案?

【问题讨论】:

  • 要(让 Windows)一步完成,请查看 SHFileOperationFO_COPY
  • 有很多选择,但这并不适合 Q
  • IFileOperation 是操作系统提供的解决方案,sample

标签: c++ winapi


【解决方案1】:

reference
Windows 平台:SHFileOperation。推荐使用std::filesystem::copy。这是一个示例:

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <filesystem>
namespace fs = std::filesystem;
 
int main()
{
    fs::create_directories("sandbox/dir/subdir");
    fs::copy("sandbox/dir", "sandbox/dir2"); // copy directory (non-recursive)
    const auto copyOptions = fs::copy_options::update_existing
                           | fs::copy_options::recursive
                           ;
    fs::copy("sandbox", "sandbox_copy", copyOptions); 
}

【讨论】:

    猜你喜欢
    • 2013-03-15
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多