C #: Как проверить, обновлен ли открытый файл - PullRequest
3 голосов
/ 19 октября 2010

Вам известна функция, например, вы открыли C:\test.txt, если у вас также есть тот же файл в другом редакторе, и вы редактируете его там, когда вы вернетесь, приложение предложит вам изменить файл, хотите ли вы обнови это. Как проверить, обновлен ли файл?

UPDATE

задал родственный вопрос " Использование FileSystemWatcher для отслеживания изменений в файлах "

Ответы [ 3 ]

9 голосов
/ 19 октября 2010

Вы можете использовать FileSystemWatcher для получения уведомлений из файловой системы.

4 голосов
/ 19 октября 2010

Вы можете либо использовать FileSystemWatcher , либо можете запрашивать изменения в удобные моменты.

Обратите внимание, что FileSystemWatcher может пропустить изменения при большой нагрузке и составляет IDisposable. Неспособность утилизировать его должным образом может вызвать проблемы со стабильностью (что у меня случалось, лично). Если вы выбрали опрос, обратите внимание, что FileInfo кэширует некоторые метаданные, поэтому вам придется вызывать метод FileInfo.Refresh, если вы повторно используете FileInfo объекты. Или используйте API File.

Только для нескольких файлов опрос проще и безопаснее, поскольку он позволяет избежать проблем с обратным вызовом ОС FileSystemWatcher и никогда не пропускает никаких событий. Для большого количества файлов FileSystemWatcher является обязательным условием для достижения разумной производительности.

4 голосов
/ 19 октября 2010

Либо используйте FileSystemWatcher (предпочтительно), либо периодически сравнивайте дату последнего изменения.

...