Запрет повторного открытия QFile |
Здравствуйте, гость ( Вход | Регистрация )
Запрет повторного открытия QFile |
chereppiter |
6.2.2013, 15:08
Сообщение
#1
|
Студент Группа: Участник Сообщений: 30 Регистрация: 12.11.2012 Пользователь №: 3595 Спасибо сказали: 0 раз(а) Репутация: 0 |
Как запретить повторное открытие файла? Например, есть файл "file.ext". Предположим, что он в данный момент открыт приложением и последнее пишет в него данные. Параллельно приложение пытается сохранить другой файл с таким же именем в эту же директорию. Производится проверка на существование файла с таким именем. Если файл существует, то выдаётся предупреждение. Если пользователь подтверждает перезапись, то приложение пытается открыть файл и начать запись. В таком случае получается, что файл открывается повторно и в него параллельно пишутся различные данные (например, из 2-х потоков). Надо как-то запретить открытие файла, если он в данный момент открыт. Понятно, что можно просто хранить в каком-нибудь списке пути к открытым файлам и перед открытием проверять этот список, но, мне кажется, должно быть более изящное решение
|
|
|
Iron Bug |
6.2.2013, 15:48
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
гугл сказал, что существует QxtFileLock.
но вообще-то такие залочивания очень разные от системы к системе. так что я не очень понимаю, как оно там работает. |
|
|
chereppiter |
6.2.2013, 16:10
Сообщение
#3
|
Студент Группа: Участник Сообщений: 30 Регистрация: 12.11.2012 Пользователь №: 3595 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо, посмотрю, что это такое.
Это, как я понимаю, нужно какую-то библиотеку расширений ещё ставить, а хотелось бы обойтись только возможностями самой Qt. |
|
|
Litkevich Yuriy |
6.2.2013, 16:54
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
chereppiter |
6.2.2013, 17:06
Сообщение
#5
|
Студент Группа: Участник Сообщений: 30 Регистрация: 12.11.2012 Пользователь №: 3595 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ок, спасибо.
|
|
|
lanz |
14.2.2013, 8:28
Сообщение
#6
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Если одна и та же программа, то можно использовать именованый семафор http://doc.qt.digia.com/qt/qsystemsemaphore.html.
|
|
|
Текстовая версия | Сейчас: 23.11.2024, 3:55 |