Sto provando a spostare file su linux usando C++. Il problema è che il file sorgente e la cartella di destinazione possono trovarsi in partizioni diverse. Quindi non posso semplicemente spostare i file. Ok. Ho deciso di copiare il file ed eliminare quello vecchio.Modo più rapido per spostare il file in C++ su linux
//-----
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;
}
//-----
Ora il mio problema. Ho capito, questo metodo è molto lento. Ci vogliono 47 secondi per 100 MB. Basta copiare un file con il comando della console per 2-3 secondi.
Qualcuno ha un'idea?
La seguente risposta è la soluzione migliore: http://stackoverflow.com/questions/10195343/copy-a-file-in-an-sane-safe-and-efficient-way –