Я пытаюсь переместить файлы в 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;
}
//-----
Теперь моя проблема. Я понял, этот метод очень медленный. Для 100 МБ требуется 47 секунд. Простое копирование файла консольной командой занимает 2-3 секунды.
У кого-нибудь есть идея?