5

C++ を使用して Linux でファイルを移動しようとしています。問題は、ソース ファイルと宛先フォルダーが異なるパーティションにある可能性があることです。そのため、単純にファイルを移動することはできません。Ok。ファイルをコピーして古いファイルを削除することにしました。

//-----
bool copyFile(string source, string destination)
{
    bool retval = false;
    ifstream srcF (source.c_str(), fstream::binary);
    ofstream destF (destination.c_str(), fstream::trunc|fstream::binary);
    if(srcF.is_open() && destF.is_open()){
        destF << srcF.rdbuf(); //copy files binary stream
        retval = true;
    }
    srcF.close();
    destF.close();
    return retval;
}
//-----

今私の問題。この方法は非常に遅いことに気付きました。100MB の場合、47 秒かかります。コンソール コマンドでファイルをコピーするだけで、2 ~ 3 秒かかります。

誰かアイデアがありますか?

4

2 に答える 2

-1

Linux の使用 - rename(古い名前、新しい名前);

于 2015-01-28T23:39:37.363 に答える