我正在使用C ++在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;
}
//-----
现在我的问题是,我发现这种方法非常慢。对于100MB的文件,需要47秒才能完成。 而使用控制台命令简单地复制文件只需2-3秒钟。 有没有人有想法?