Ich versuche, Dateien unter Linux mit C++ zu verschieben. Das Problem ist, dass die Quelldatei und der Zielordner in verschiedenen Partitionen sein können. Also kann ich die Dateien nicht einfach verschieben. Ok. Ich beschloss, die Datei zu kopieren und die alte zu löschen.Schnellere Möglichkeit, Datei in C++ auf Linux zu verschieben
//-----
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;
}
//-----
Jetzt mein Problem. Ich erkannte, dass diese Methode sehr langsam ist. Es dauert 47 Sekunden für 100 MB. Kopieren Sie einfach eine Datei mit dem Befehl Konsole dauert 2-3 Sekunden.
Hat jemand eine Idee?
Die folgende Antwort ist Ihre beste Wette: http://stackoverflow.com/questions/10195343/copy-a-file-in-an-sane-safe-and-efficient-way –