Как переместить файлы в Qt? - PullRequest
21 голосов
/ 07 февраля 2011

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

Ответы [ 3 ]

24 голосов
/ 07 февраля 2011

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

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

9 голосов
/ 07 февраля 2011

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

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

0 голосов
/ 07 февраля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...