当前位置: 首页 > 知识库问答 >
问题:

如何用C++程序快速地将文件从一个位置复制到另一个位置?[副本]

朱宏爽
2023-03-14
#include<iostream>
#include<fstream>

using namespace std;

main()
{
    cout<<"Copy file\n";
    string from,to;
    cout<<"Enter file address: ";
    cin>>from;
    ifstream in(from,ios::in | ios::binary);
    if(!in)
    {
        cout<<"could not find file "<<from<<endl;
        return 1;
    }
    cout<<"Enter file destination: ";
    cin>>to;
    ofstream out(to,ios::out | ios::binary);
    char ch;
    while(in.get(ch))
    {
        out.put(ch);
    }
    cout<<"file has been copied\n";
    in.close();
    out.close();
}

共有1个答案

昝欣可
2023-03-14

每次读取一个字节会在函数调用中浪费大量时间。使用更大的缓冲区:

char ch[4096];
while(in) {
    in.read(ch, sizeof(ch));
    out.write(ch, in.gcount());
}

(您可能需要添加一些更多的错误处理,例如outmay go in a bad state等)

(这里报告的是最具C++风格的方法,但它利用了streambuf功能,通常初学者很少知道这些功能,对我来说也没有太多的指导意义)

 类似资料:
  • 问题内容: 我想将文件从Java中的一个位置复制到另一位置。做这个的最好方式是什么? 这是我到目前为止的内容: 这不会复制文件,执行此操作的最佳方法是什么? 问题答案: 您可以使用此(或任何变体): 另外,我建议您使用或代替使其兼容于多个操作系统. 由于您不确定如何临时存储文件,因此请查看: 要将a 个文件移动到单个目录中:

  • 问题内容: 我想为我们的多TB文件服务器的结构创建一个克隆。我知道cp –parents可以移动文件及其父结构,但是有什么办法可以完整地复制目录结构? 我想复制到Linux系统,并且文件服务器安装在CIFS上。 问题答案: 您可以执行以下操作: 创建目录列表,然后 在目标上创建目录。

  • 您好,我目前正在尝试编写一个结合docx文件的代码。这些文件可能包含文本、图像、表格或方程式。代码旨在复制这些对象并将它们附加到基本docx。我可以使用docx模块的“添加图片”和“添加段落”方法复制和合并文本、图像和表格,但我无法对word公式执行此操作。我决定尝试深入研究docx的xml,并从那里复制等式部分。我可以将公式附加到我的基本文档中,但是当我继续附加图片、文本和表格时,这些公式会显示

  • 问题内容: 当我尝试添加到时,出现此错误。 这是我从这里得到的代码: 当我不使用该应用程序时,它运行正常,但崩溃了。 问题答案: 实际上,我回答了这个问题,但是当时我使用的API现在被认为是旧的。因此,我建议您使用以下方法:

  • 问题内容: 我很难弄清楚如何移动数组元素。例如,给出以下内容: 我为什么能写入移动功能之前? 还是之后? 移动后,应更新其余元素的索引。这意味着在第一个示例中,移动后arr [0] =’a’,arr [1] =’d’arr [2] =’b’,arr [3] =’c’,arr [4] = ‘e’ 这似乎应该很简单,但是我无法将其包裹住。 问题答案: 如果您想在npm上使用一个版本,则array-mo

  • 我继承了这段代码,它包含一个函数,该函数将.pdf文件从一个位置复制到另一个位置,在这个过程中创建新文件夹(由哈希值命名),并将新路径保存到一个数据库,BI工具稍后使用该数据库通过API访问该文件。 在我们将文件服务器移动到一个新主机,并四次检查权限和路径引用之后,在将文件复制到代码中的新位置时,我们将收到这个java.io.IoException。复制失败,无法在适用的地方创建文件夹,并且无法通