Название: Монопольный доступ к файлу Отправлено: Waryable от Сентябрь 01, 2010, 10:02 Всем привет. Собственно, вопрос вот в чем: есть ли в Qt возможность устанавливать монопольный режим работы с файлом? Я прошарил QFile и QIODevice. Ничего не нашел. С другой стороны нашел API-функцию:
Код: HFILE OpenFile( Здесь последний параметр задает режим работы с открываемым файлом. При установке этого флага в значение OF_SHARE_DENY_READ функция открытия в режиме чтения этого же файла любыми другими процессами вернет ошибку. Это я в данный момент проверяю. Но все же хотелось бы выполнить то же самое средствами Qt или убедиться, что этой возможности там нет. Название: Re: Монопольный доступ к файлу Отправлено: kuzulis от Сентябрь 01, 2010, 10:27 нет, нету такого. Как вариант - сделайте сами дополнительный класс типа FileLocker
Код: class FileLocker : public QObject В ОС Windows и *.nix есть функции блокировки открытого файла по его дескриптору. Win : http://msdn.microsoft.com/en-us/library/aa365202(VS.85).aspx Posix: http://www.opennet.ru/man.shtml?topic=flock&category=2&russian=2 Ну также посмотри в сторону QFile::Permissions Название: Re: Монопольный доступ к файлу Отправлено: Sancho_s_rancho от Сентябрь 01, 2010, 12:45 http://doc.libqxt.org/0.6.0/qxtfilelock.html
Посмотрите. Название: Re: Монопольный доступ к файлу Отправлено: Denjs от Сентябрь 01, 2010, 12:58 а открыть файл на запись? нам конечно могут отказать от недостатка прав, но это самое простое решение кажется...
Название: Re: Монопольный доступ к файлу Отправлено: Waryable от Сентябрь 01, 2010, 13:19 kuzulis, вот походу то, что нужно. Использую метод LockFileEx. Однако пока не понял как вытянуть нативный HANDLE из файлового потока QFile.
Sancho_s_rancho. Я так понимаю это чья-то сторонняя доработка библиотеки? Походу QxtFileLock просто Qt-обертка для LockFile/LockFileEx. Вообще я настроен обойтись теми инструментами, которые у меня уже есть. Желательно чисто Qt-классами. Denjs, мне требуется, что бы кроме процесса, заблокировавшего файл ни один другой не смог даже открыть этот файл. Поэтому твое решение тут не подойдет. :) Название: Re: Монопольный доступ к файлу Отправлено: Авварон от Сентябрь 01, 2010, 14:51 http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Utilities/qtlockedfile/ не?
|