Russian Qt Forum

Qt => Общие вопросы => Тема начата: fuCtor от Апрель 01, 2010, 14:20



Название: Проверка возможности записи в папку
Отправлено: fuCtor от Апрель 01, 2010, 14:20
Часто бывает, что нужно записать файл в кукую либо папку, но как проверить имеет ли пользователь, под которым запущен процесс права на это?

Сейчас пробую через QFileInfo, но как то без результативно. Как еще можно?


Название: Re: Проверка возможности записи в папку
Отправлено: Пантер от Апрель 01, 2010, 14:39
bool QDir::isReadable () const


Название: Re: Проверка возможности записи в папку
Отправлено: fuCtor от Апрель 01, 2010, 16:11
А это не значит лишь, что мы можем ЧИТАТЬ файлы в этой папке, а создать новый не получится?
Если все же работает, то странный нейминг  :-\


Название: Re: Проверка возможности записи в папку
Отправлено: Пантер от Апрель 01, 2010, 16:26
Дал маху, isReadable не то.
Читай ассистент, там все есть. QFile::Permissions QFileInfo::permissions () const Флаг QFile::WriteUser


Название: Re: Проверка возможности записи в папку
Отправлено: fuCtor от Апрель 01, 2010, 16:48
Да, спасибо =) именно то что искал.
Только логичней было бы расположить это в QFileInfo, ИМХО


Название: Re: Проверка возможности записи в папку
Отправлено: Пантер от Апрель 01, 2010, 16:50
А оно где???


Название: Re: Проверка возможности записи в папку
Отправлено: fuCtor от Апрель 01, 2010, 18:29
Извиняюсь ) не увидел  :-X чтото под вечер совсем не внимателен стал, только в QFile смотрел данный метод.

Но важная пометка была именно в классе QFile:
Цитировать
Note that Qt does not by default check for permissions on NTFS file systems, as this may decrease the performance of file handling considerably. It is possible to force permission checking on NTFS by including the following code in your source:

 extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;

Permission checking is then turned on and off by incrementing and decrementing qt_ntfs_permission_lookup by 1.

 qt_ntfs_permission_lookup++; // turn checking on
 qt_ntfs_permission_lookup--; // turn it off again