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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не работает определение прав на каталог  (Прочитано 6126 раз)
Hordi
Гость
« : Август 27, 2009, 13:56 »

Приветствую

Есть каталог с закрытыми  правами на чтение и исполнение - хочу узнать что это так. Использую нифеприведенный код, но он не работает так как ожидал (b всегда TRUE). В чем проблема?

Qt-4.5.2

Код:
  QFile::Permissions perm = QFileInfo( "c:/ACCESS_DENIED/" ).permissions(); 

  bool 

  b = perm & QFile::ReadOwner;
  b = perm & QFile::WriteOwner;
  b = perm & QFile::ExeOwner;

  b = perm & QFile::ReadUser;
  b = perm & QFile::WriteUser;
  b = perm & QFile::ExeUser;

  b = perm & QFile::ReadGroup;
  b = perm & QFile::WriteGroup;
  b = perm & QFile::ExeGroup;

  b = perm & QFile::ReadOther;
  b = perm & QFile::WriteOther;
  b = perm & QFile::ExeOther;

 
Записан
DenKor
Гость
« Ответ #1 : Август 27, 2009, 14:37 »

Попробуй оператор &&.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #2 : Август 27, 2009, 14:46 »

Под виндой permissions не работает.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Hordi
Гость
« Ответ #3 : Август 27, 2009, 14:52 »

>Под виндой permissions не работает.

Новость для меня... А можете указать где это в документации написано?
А какие варианты еще есть кроме юзать Qt для этой цели (мож API-функцию какую подскажите)?
Записан
crackedmind
Гость
« Ответ #4 : Август 27, 2009, 17:15 »

Как это не работает Непонимающий

Код
C++ (Qt)
    extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;
    qt_ntfs_permission_lookup++;
   QFile::Permissions perm = QFileInfo( "c:/System Volume Information" ).permissions();
 
 
 bool
 
 b = perm & QFile::ReadOwner;
 qWarning() << b; // false
 b = perm & QFile::WriteOwner;
 qWarning() << b; // false
 b = perm & QFile::ExeOwner;
 qWarning() << b; // true
 
 b = perm & QFile::ReadUser;
 qWarning() << b; // false
 b = perm & QFile::WriteUser;
 qWarning() << b; // false
 b = perm & QFile::ExeUser;
 qWarning() << b; //true
 
 b = perm & QFile::ReadGroup;
 qWarning() << b; // true
 b = perm & QFile::WriteGroup;
 qWarning() << b; // true
 b = perm & QFile::ExeGroup;
 qWarning() << b; // true
 
 b = perm & QFile::ReadOther;
 qWarning() << b; // false
 b = perm & QFile::WriteOther;
 qWarning() << b; // false
 b = perm & QFile::ExeOther;
 qWarning() << b;// true

Цитировать
Warning: Because of differences in the platforms supported by Qt, the semantics of ReadUser, WriteUser and ExeUser are platform-dependent: On Unix, the rights of the owner of the file are returned and on Windows the rights of the current user are returned. This behavior might change in a future Qt version.

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

The Permissions type is a typedef for QFlags<Permission>. It stores an OR combination of Permission values.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #5 : Август 27, 2009, 17:28 »

Тьфу, совсем забыл про это. Каюсь.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Hordi
Гость
« Ответ #6 : Август 28, 2009, 09:52 »

Спасибо ОГРОМНОЕ! Избавили меня от юзания WinAPI!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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