Если у вас есть контроль как над создателем файла, так и за потребителем, старый способ - создать файл под другим именем и переименовать его после завершения.
Например, допустим, что производитель создает файлы, которые всегда называются file_.txt, а ваш потребитель сканирует все файлы, начиная с file_, тогда производитель может сделать это:
1. Создайте файл с именем tmpfile_.txt
2. Когда файл записывается, производитель просто переименовывает файл в file_.txt
Операция переименования является атомарной, поэтому, как только ваш потребитель увидит ее доступной, ее можно безопасно открыть.
Конечно, этот ответ зависит от того, пишете ли вы обе программы.
НТН
Дермот.