Есть ли кросс-платформенная функция в Qt, которая эквивалентна функции MoveFile в Windows и команде mv в Linux?
Как переместить файлы в Qt?
Ответ 1
Конечно, QDir::rename(), следуя старой традиции Unix/POSIX при вызове этого переименования.
Что имеет смысл, если вы думаете о файле с его полным путем: базовые inodes просто назначают другую метку пути/файла.
Ответ 2
Вы использовали бы QDir:: rename(), но будьте осторожны с особыми случаями, когда rename() может выйти из строя:
В большинстве файловых систем
rename()не выполняется только еслиoldNameне существует, еслиnewNameиoldNameне находятся на тот же раздел или если файл с новое имя уже существует. Однако, есть и другие причины, по которымrename()может выйти из строя. Например, на менее чем одна файловая системаrename()не работает еслиnewNameуказывает на открытый файл.
Ответ 3
QUrlOperator:: copy() является альтернативой QDir:: rename(), которая также может работать на вас.