Russian Qt Forum

Qt => Общие вопросы => Тема начата: spectre71 от Август 21, 2009, 05:17



Название: Не работает QFile::setPermissions
Отправлено: spectre71 от Август 21, 2009, 05:17
QT 4.5.2
Windows XP
NTFS
=========
Права администраторские
"D:/TestFile" - существует.
Изначально Permissions == 0x6600;
IFile.setPermissions - возвращает true. Однако Permissions не изменяются!
В чем может быть проблема?

Код
C++ (Qt)
extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;
 
void sb_pipeline2::on_testButton_9_clicked()
{
 qt_ntfs_permission_lookup++;
 QFile IFile("D:/TestFile");
 QFile::Permissions Permissions = IFile.permissions();
//  Permissions == 0x6600;
 Permissions |= QFile::ExeOther|QFile::ExeUser|QFile::ExeOwner|QFile::ExeGroup;
//  Permissions == 0x7711;
 if(!IFile.setPermissions(Permissions)) {
   QMessageBox::critical(0, "Error", "Cannot set file Permitions");
   return;
 }
 Permissions = IFile.permissions();
//  Permissions == 0x6600;
 if(Permissions & (QFile::ExeOther|QFile::ExeUser|QFile::ExeOwner|QFile::ExeGroup)) {
   QMessageBox::information(0, "Info", "Executable file");
 }
}

В обратную сторону тоже не работает:
0x7700 >> 0x6600


Название: Re: Не работает QFile::setPermissions
Отправлено: Пантер от Август 21, 2009, 09:32
А разве в винде есть Exe* пермижены? ;)
Для получения Executable проверяй расширение файла.


Название: Re: Не работает QFile::setPermissions
Отправлено: spectre71 от Август 21, 2009, 09:42
А разве в винде есть Exe* пермижены? ;)
Для получения Executable проверяй расширение файла.
1) Есть!
2) Если снять "Exe" Permissions расширение не поможет, программа не запустится!
3) Для создания процесса QProcess, расшерение не важно, но он не стартует если нет "Exe" Permissions


Название: Re: Не работает QFile::setPermissions
Отправлено: Пантер от Август 21, 2009, 11:25
Что-то я о таких пермиженах не слышал. Может путаешь с политиками доступа?


Название: Re: Не работает QFile::setPermissions
Отправлено: ритт от Август 21, 2009, 14:04
нет, Spectre правильно говорит.
а на счёт setPermissions я тебе говорил, что нужно до сентября сделать, если нужно будет этим пользоваться. теперь уже поздно.

резюмирую: QFile::setPermissions на нтфс не работает.


Название: Re: Не работает QFile::setPermissions
Отправлено: spectre71 от Август 21, 2009, 15:00
нет, Spectre правильно говорит.
а на счёт setPermissions я тебе говорил, что нужно до сентября сделать, если нужно будет этим пользоваться. теперь уже поздно.

резюмирую: QFile::setPermissions на нтфс не работает.

Под виндами пока не так принципиально. Главное что-бы корректно работало для Mac и Linux.


Название: Re: Не работает QFile::setPermissions
Отправлено: ритт от Август 21, 2009, 16:15
под никсами должно работать


Название: Re: Не работает QFile::setPermissions
Отправлено: ритт от Август 24, 2009, 00:22
поспешил с выводами...имеется одна возможность...
если кто-то из заинтересованных в ближайший месяц-два реализует установку нтфс-пермиженов хотя бы в качестве сниппета, попробую пропихнуть данный функционал в 4.6.
/* я же временно вычёркиваю себя из списка заинтересованных, т.к. увлёкся одним своим старым проектом )) */