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