Мое предложение, даже при использовании наблюдателя FileSystem, просто сделать Thread.Sleep (1000) после того, как FileCreated (или любое событие, которое вы смотрите) запущено, так что вы на 100% уверены, что предыдущий процесс имеет сделано с этим. У меня был подобный опыт при использовании наблюдателей FileSystem, и некоторое время приостанавливал, прежде чем пытаться получить доступ к файлу, исправил проблему.