Russian Qt Forum

Qt => Общие вопросы => Тема начата: developer от Октябрь 03, 2007, 18:50



Название: Работа с файлом средствами QT
Отправлено: developer от Октябрь 03, 2007, 18:50
Возможно  ли средствами Qt сделать выбранный файл неоткриваемым и неудаляемым . Имеется ввиду, если кто-то открывает файл, то ему выдается сообщеные типа "У вас нет доступа к етому файлу". При етом должна быть запущенна программа которая етот файл защищает, если ету прогу вырубать, то файл можно открывать и удалять. Если Qt не поддерживает ето то как сделать средствами Винди. 


Название: Re: Работа с файлом средствами QT
Отправлено: Tonal от Октябрь 03, 2007, 20:23
В винде при открытии файла ты можешь указать режимы совместного доступа. Если не указывать ничего (0) то файл открывается для эксклюзивного доступа (см WinAPI CreateFile dwShareMode)
Чтобы воспользоваться открытым таким образом файлом в Qt, можно использовать QFile::open(int, OpenMode);


Название: Re: Работа с файлом средствами QT
Отправлено: pastor от Октябрь 03, 2007, 20:48
На сколько я знаю, такого средствами Qtсделать нельзя. В винде можно попробывать покопаться в MSDN - Platform SDK: Security (SetSecurityInfo, SetNamedSecurityInfo etc). Но это канает на NTFS

Цитировать
You can use the SetNamedSecurityInfo function with the following types of objects:


Local or remote files or directories on an NTFS
Local or remote printers
Local or remote Windows services
Network shares
Registry keys
Semaphores, events, mutexes, and waitable timers
File-mapping objects
Directory service objects


Название: Re: Работа с файлом средствами QT
Отправлено: Tonal от Октябрь 04, 2007, 07:27
Я же описал, как это можно на винде сделать.
Работать будет и на ntfs и на fat.
Ты немножко попутал секурити и блокировки. ;-)

P.S. Если залезть в исходники Qt, можно увидеть, что там файл открывается с разрешениями всем его писать и читать.