我想通過使用C++在linux上移動文件。 問題是,源文件和目標文件夾可能位於不同的分區中。所以我不能簡單地移動文件。 好的。我決定複製文件並刪除舊文件。在linux上用C++移動文件的更快的方法
//-----
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秒。 只需用console命令複製一個文件需要2-3秒。
有沒有人有想法?
以下答案是你最好的選擇:http://stackoverflow.com/questions/10195343/copy-a-file-in-an-sane-safe-and-efficient-way –