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.
/* я же временно вычёркиваю себя из списка заинтересованных, т.к. увлёкся одним своим старым проектом )) */