QDir::rename()

Модератор: Модераторы разделов

Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

QDir::rename()

Сообщение Shura »

Столкнулся с непонятной проблемой
Qt4.4.1

В документации сказано, что QDir::rename возвращает false если источник и назначение находятся на разных разделах, однако у меня эта функция в любом случае возвращает true;
Причём отрабатывает очень интересно. При попытке переименовать каталог, на месте назначения появляется файл, размером 512 байт с именем каталога, каталог-источник при этом остаётся на месте. rename возвращает true
Переименование в пределах одного раздела проблем не вызывает и работает нормально.
Это я косячу или какой-то баг в QT?

кусок кода простейший

Код: Выделить всё

QDir dir("/home/shura/tmp");
if(!dir.rename("/home/shura/tmp","/mnt/flash/tmp"))
{
   qDebug("Can't rename");
}
else
{
   qDebug("renamed successfully");
}
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
DsTr
Сообщения: 374
ОС: Arch x64

Re: QDir::rename()

Сообщение DsTr »

On most file systems, rename() fails only if oldName does not exist, if newName and oldName are not on the same partition or if a file with the new name already exists
JID:dstr@jabbus.org
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: QDir::rename()

Сообщение Shura »

Да, это я читал. И согласно этому rename в моём случае должен вернуть false, но этого не происходит. Вот я и задал вопрос - почему?
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

Re: QDir::rename()

Сообщение eduard_pustobaev »

У меня вполне себе выводит "Can't rename".
/home/ed/tmp - существует, /mnt/flash/tmp - нет.

Конечно я не совем понял ваши условия...

Код: Выделить всё

:!qmake -v
QMake version 2.01a
Using Qt version 4.4.3 in /usr/lib
В дисгармонии со вселенной.
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: QDir::rename()

Сообщение Shura »

У именя именно такие условия и есть.
Видимо надо ждать пока в портах версия обновится до 4.4.3
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: QDir::rename()

Сообщение Shura »

Вообщем, поставил в конце имен каталогов слэши и всё заработало.
Rock'n'roll мертв © БГ
Спасибо сказали: