Не совсем "запретить", но самостоятельно вызывать QFile::flush() может помочь.
close отлично справляется. По крайней мере в 4.7 и выше. Буквально пару минут назад проверял. Write-Close-Точка остановки - файл уже есть.
Если вы о моментальном чтении из файла? Насколько я помню в Windows ленивая запись. Т.е. сразу же после закрытия вы файл можете получить. А можете нет. Но надо уточнить, ибо я не задавался таким аспектом.
PS хотя вру, всё работает прекрасно. Тот же озвучиватель текста с гугла у меня спокойно пишет файл и сразу воспроизводит.
Разница есть, попробуйте сохранять на сетевом диске, и читать другой программой...
Я писал на васике, так все было вроде хорошо, а временами на сетевом диске ничего не появлялось, пришлось вставить модуль на Си, который запретил ленивую запись, и все стало на место...
Вот я и думал, может в Qt можно запретить ленится?...
close/flush сделать не могу, файл грузится с http, все происходит асинхронно и внутри,..
сделал в цикле вызов processevent , цикл прерывается как только файл станет существовать, под ХП понадобилось 2000 повторений, а под Юбунту 13.10 - > 8000, ух!
Есть идеи?
С уважением,
Радмир