Класс FileSystemWatcher — простой вопрос

#c# #.net #windows

#c# #.net #Windows

Вопрос:

В настоящее время я играю с классом FileSystemWatcher, хотел узнать, как указать путь к каталогу, но также все его дочерние файлы являются папками. Таким образом, он будет искать любые изменения в любом месте C: например C:Program Файлы тест и т.д.

 string DirPath = "C:\*.*";
  

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

Исходный код ниже:

 static void Main(string[] args)
{
    string DirPath = "C:\*.*";
    FileSystemWatcher FileWatcher = new FileSystemWatcher(DirPath);
    FileWatcher.Changed  = new FileSystemEventHandler(FileWatcher_Changed);
    FileWatcher.Created  = new FileSystemEventHandler(FileWatcher_Created);
    FileWatcher.Deleted  = new FileSystemEventHandler(FileWatcher_Deleted);
    FileWatcher.Renamed  = new RenamedEventHandler(FileWatcher_Renamed);
    FileWatcher.EnableRaisingEvents = true;

    Console.ReadKey();
}
  

Ответ №1:

Используйте свойство FileSystemWatcher IncludeSubdirectories.

Если вы добавите строку

 FileWatcher.IncludeSubdirectories = true;
  

он будет отслеживать все подкаталоги по указанному пути.

Комментарии:

1. Не могли бы вы привести пример, пожалуйста?

Ответ №2:

Размещать уведомление об изменении файла на всем C: — ужасная идея — если вы действительно хотите отслеживать весь том, вам, вероятно, следует использовать журнал USN