Подтвердить что ты не робот

Как переместить файлы в Qt?

Есть ли кросс-платформенная функция в Qt, которая эквивалентна функции MoveFile в Windows и команде mv в Linux?

4b9b3361

Ответ 1

Конечно, QDir::rename(), следуя старой традиции Unix/POSIX при вызове этого переименования.

Что имеет смысл, если вы думаете о файле с его полным путем: базовые inodes просто назначают другую метку пути/файла.

Ответ 2

Вы использовали бы QDir:: rename(), но будьте осторожны с особыми случаями, когда rename() может выйти из строя:

В большинстве файловых систем rename() не выполняется только если oldName не существует, если newName и oldName не находятся на тот же раздел или если файл с новое имя уже существует. Однако, есть и другие причины, по которым rename() может выйти из строя. Например, на менее чем одна файловая система rename() не работает если newName указывает на открытый файл.

Ответ 3

QUrlOperator:: copy() является альтернативой QDir:: rename(), которая также может работать на вас.