Russian Qt Forum
Ноябрь 24, 2024, 04:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] QFile FileError  (Прочитано 10041 раз)
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #15 : Июль 30, 2014, 11:11 »

Нашел в http://technet.microsoft.com/en-us/library/bb727008.aspx следующее - If a user has full control over a folder, the user can delete files in the folder regardless of the permission on the files. Значит права файла тоже имеют отношение к удалению по всей видимости.

Это документация для пользователя десктопа, методы API могу вести себя по-другому. Тот же эксплорер наверняка снимает read-only атрибут перед удалением.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #16 : Июль 30, 2014, 11:13 »

"If the file is a read-only file, the function fails with ERROR_ACCESS_DENIED." почему же тогда lastError вернуло 0?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #17 : Июль 30, 2014, 11:14 »

Масдай он такой масдай. Улыбающийся
Тогда для винды нужно права все таки менять.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #18 : Июль 30, 2014, 11:19 »

"If the file is a read-only file, the function fails with ERROR_ACCESS_DENIED." почему же тогда lastError вернуло 0?

может оригинальный код не совсем такой как скопипащен сюда, либо бага в винде. У меня, например, нормально:

Код
C++ (Qt)
   BOOL f = DeleteFile(L"F:\\url.txt");
   qDebug() << f << GetLastError();

печатает
Цитировать
0 5
где 5 - ERROR_ACCESS_DENIED
Записан
OKTA
Гость
« Ответ #19 : Июль 30, 2014, 11:22 »

Нет, оригинальный код именно такой - лишнего ничего нет - в пустом проекте пытаюсь удалять.
Ну, раз надо снимать readOnly, то QFile::WriteOther видимо это и делает.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #20 : Июль 30, 2014, 11:24 »

Я тут подумал что вероятно это баг всё-таки в Qt, если он error() возвращает как NoError. Попробуй на 4.8.6.
Записан
OKTA
Гость
« Ответ #21 : Июль 30, 2014, 11:34 »

Как появится под рукой - попробую!
Всем спасибо!
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.117 секунд. Запросов: 22.