当前位置:首页 C++ > 正文

C/C++实现遍历文件夹中所有文件并复制到另一个目录

作者:野牛程序员:2023-08-29 10:09:08 C++阅读 2676

可以使用以下的C/C++代码来实现遍历文件夹中所有文件并复制到另一个目录的功能:

#include <iostream>
#include <filesystem>
#include <fstream>
#include <string>

namespace fs = std::filesystem;

void copyFile(const fs::path& source, const fs::path& destination) {
    std::ifstream src(source, std::ios::binary);
    std::ofstream dest(destination, std::ios::binary);

    dest << src.rdbuf();
}

void traverseAndCopy(const fs::path& sourceDir, const fs::path& destinationDir) {
    for (const auto& entry : fs::directory_iterator(sourceDir)) {
        const fs::path& sourcePath = entry.path();
        const fs::path& destinationPath = destinationDir / sourcePath.filename();

        if (fs::is_regular_file(sourcePath)) {
            copyFile(sourcePath, destinationPath);
        } else if (fs::is_directory(sourcePath)) {
            fs::create_directory(destinationPath);
            traverseAndCopy(sourcePath, destinationPath);
        }
    }
}

int main() {
    const fs::path sourceDirectory = "path_to_source_directory";  // 替换为源文件夹的路径
    const fs::path destinationDirectory = "path_to_destination_directory";  // 替换为目标文件夹的路径

    traverseAndCopy(sourceDirectory, destinationDirectory);

    return 0;
}

请将上述代码中的 "path_to_source_directory" 替换为源文件夹的实际路径,将 "path_to_destination_directory" 替换为目标文件夹的实际路径。这段代码将遍历源文件夹中的所有文件和子文件夹,并将它们复制到目标文件夹中。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击