Я пытаюсь переместить файл из одного места в другое, используя boost::filesystem
. Я использовал функцию boost::filesystem::rename
, но когда я пытаюсь это сделать, у меня возникает следующая ошибка.
terminate called after throwing an instance of
'boost::filesystem::filesystem_error'
what(): boost::filesystem::rename: Invalid cross-device link:
"./file_A.csv", "/opt/data/file_B.csv"
Aborted (core dumped)
Я понял, что проблема в том, что я пытаюсь переместить файл из одной папки в другую, смонтированную на другом томе.
Есть ли решение, отличное от
- КОПИРОВАТЬ файл, а затем УДАЛИТЬ его (это дает мне чувство безопасности).
- обернуть
mv
вызовомstd::systen
?
Есть ли в boost::filesystem
какая-либо другая функция для того, чего я хочу достичь? сам найти не могу.
Я работаю с g++ и linux.
/bin/mv
, когда первоначальная попыткаrename()
не удалась... - person twalberg   schedule 13.06.2014os.rename()
. - person rr-   schedule 08.06.2015