![]() |
|
|
![]()
|
|
| xbarmaglot |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.8.2012 Репутация: нет Всего: нет |
В отдельном потоке постоянно вычитывается директория и обрабатываются новые фалы.
Но если в директорию копируется очень большой файл, то происходит попытка чтения еще не скопированного файла - получается чтение битого файла. В WInAPI можно было попытаться монопольно открыть файл, для того, чтобы понять, что он переписался. Можно в QT отследить данную проблему ? З.Ы. Есть QLockFile, но при попытке залочить файл он его стирает... |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
1) Можно пытаться открыть его на запись - ( QIODevice::WriteOnly | QIODevice::Append ). Если не дали, то файл ещё пишется.
2) Если файл записывает твоя же программа, то есть два варианта: 2.1) После окончания записи файла класть рядом с ним файл-квитанцию с таким же именем, но с другим расширением, например *.done (в программе, которая мониторит каталог нужно ждать только файлы *.done, и когда найдёшь - читать файл с аналогичным именем, но с "боевым" расширением, а *.done - удалять) 2.2) Писать файл с расширением *.tmp, а по окончании записи переименовывать с нужным расширением. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |