📌  相关文章
📜  c++ 复制文件到另一个目录 - C++ (1)

📅  最后修改于: 2023-12-03 14:39:55.129000             🧑  作者: Mango

C++ 复制文件到另一个目录

在 C++ 中,可以使用文件流来进行文件操作。为了将文件从一个目录复制到另一个目录,需要使用以下步骤:

  1. 打开源文件和目标文件
  2. 读取源文件,并将数据写入目标文件
  3. 关闭源文件和目标文件

以下是一个简单的例子,用于将一个文本文件从一个目录复制到另一个目录:

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

int main()
{
    // 源文件路径
    std::string srcFilePath = "C:/source/file.txt";

    // 目标文件路径
    std::string destFilePath = "C:/destination/file.txt";

    // 打开源文件
    std::ifstream srcFile(srcFilePath, std::ios::binary);

    if (!srcFile)
    {
        std::cout << "无法打开源文件 " << srcFilePath << "\n";
        return 1;
    }

    // 创建并打开目标文件
    std::ofstream destFile(destFilePath, std::ios::binary);

    if (!destFile)
    {
        std::cout << "无法创建目标文件 " << destFilePath << "\n";
        return 1;
    }

    // 读取源文件,并将数据写入目标文件
    char buffer[1024];
    while (srcFile.read(buffer, sizeof(buffer)))
    {
        destFile.write(buffer, sizeof(buffer));
    }

    // 处理未复制完的数据
    destFile.write(buffer, srcFile.gcount());

    // 关闭文件
    srcFile.close();
    destFile.close();

    std::cout << "文件已成功复制到目标目录。\n";

    return 0;
}

在上面的例子中,我们首先指定源文件的路径和目标文件的路径。然后,创建一个名为 srcFile 的输入文件流来打开源文件,并使用 std::ios::binary 标志以二进制模式打开文件。我们还检查了源文件是否成功打开。

接下来,我们创建一个名为 destFile 的输出文件流来创建并打开目标文件。我们还检查了目标文件是否成功创建。

然后,我们使用一个 while 循环来读取源文件,并将数据写入目标文件。为了实现这一点,我们定义了一个名为 buffer 的字符数组,并在每次循环中使用 srcFile.read() 函数读取该数组。然后,我们使用 destFile.write() 函数将该数组的内容写入目标文件。在读取源文件中所有数据后,我们使用 srcFile.gcount() 函数来获取最后一次读取的字节数,并使用 destFile.write() 函数将其写入目标文件。

最后,我们关闭源文件和目标文件,并输出一条消息,指示文件已成功复制到目标目录。

上面的代码只是一个简单的例子,可以根据需要进行修改和扩展。