C# получать уведомления, когда другой процесс вносит изменения в текстовый файл


Я хотел бы получать уведомления в моем приложении C#, когда другой процесс вносит изменения в определенный текстовый файл.

Причина этого заключается в том, что я запускаю сторонний инструмент из своего приложения, чтобы получить некоторую информацию об устройстве. этот инструмент сохраняет текущее состояние устройства в файл ini. Это займет некоторое неопределенное время, но я хочу отреагировать и прочитать информацию о состоянии, как только она будет доступна.

Как я могу это сделать?

2 3

2 ответа:

Можно использовать класс System.IO.FileSystemWatcher. Что-то вроде этого:

string fileToWatch = @"C:\MyFile.txt";
fileSystemWatcher = new FileSystemWatcher(fileToWatch);

void fileSystemWatcher_Changed(object sender, FileSystemEventArgs e)
{
    Debug.WriteLine(e.Name +  " has changed");
}

Вы можете следить за изменениями файлов, использующие Системы.ИО.Класса filesystemwatcher

Также смотрите уведомление при изменении файла? для получения дополнительной информации.