Почему нет boost :: filesystem :: move_file?

17

Я использую файловую систему boost для замены функций Windows C ++, таких как CopyFile и MoveFile, чтобы получить некоторую мобильность между окнами и linux. Я использую copy_file, но я не смог найти ничего, что перемещает файлы, такие как функция move_file. У boost есть функция файла перемещения?

Я бы очень хотел использовать boost, но альтернативные предложения приветствуются.

    
задан molholm 30.06.2010 в 14:34
источник

2 ответа

34

Он называется rename , см. руководство , Подобно соответствующим функциям ОС, это может работать или не работать, если исходные и целевые пути находятся в разных файловых системах. Если это не сработает, используйте операцию копирования, за которой следует операция удаления.

    
ответ дан Philipp 30.06.2010 в 14:38
источник
  • Я признаю, что, прочитав руководство, а затем, в свою очередь, прочитав страницу ISO C, на которую ссылается руководство, я не вижу ничего явно заявляющего, что пункт назначения может быть файлом в другом каталоге, чтобы переместить файл с одного каталог другому. Тщательное прочтение подразумевает, что это возможно, но я думаю, что документация по ускорению была бы намного полезнее и понятнее, если бы она прямо заявила об этой возможности. Билет документации по бонусу: svn.boost.org/trac/boost/ticket/9643 –  legalize 07.02.2014 в 15:58
  • move (как mv под Linux) работает в разных файловых системах, а rename - нет. –  trax 19.03.2018 в 16:02
-6
void add_time(ptime& gen_time, int seconds) {
    boost::posix_time::millisec_posix_time_system_config::time_duration_type time_elapse(0, 0, seconds);
    //time_elapse = p2 - p1;
    gen_time = gen_time + time_elapse;
}
    
ответ дан hechongxing 25.09.2013 в 13:49
источник
  • Возможно, это правильный ответ, но для какого-то другого вопроса. –  Dialecticus 25.09.2013 в 13:54