Вам придется многократно зацикливать и читать файл.
Обратите внимание, что вам нужна некоторая обработка ошибок, поскольку вполне вероятно, что файл иногда будет недоступен, потому что в него записывается какой-то другой процесс.*
bool found = false;
while (!found) {
try {
found = File.ReadAllText(fileName).Contains(searchString);
} catch (IOException) {
// I/O error, occurs if the file is being written.
// Nothing to do here, just wait and retry.
}
if (!found) {
Thread.Sleep(5000);
}
}
Приведенный выше код предполагает, что файл достаточно мал, чтобы его можно было прочитать в память.Если файл очень большой, вам придется читать его небольшими порциями, чтобы избежать исключений нехватки памяти.
Код ожидает 5 секунд (5000 миллисекунд) между каждой попыткой.Вы должны отрегулировать время в зависимости от вашей конкретной ситуации, то есть от того, как часто вы можете проверять файл, сохраняя при этом достаточно низкий риск того, что он нарушает процесс, который пытается изменить файл.