static void Main(string[] args)
{
Task task = Task.Run(() =>
{
CreateRndTextFiles();
});
string path = Directory.GetCurrentDirectory();
FileSystemWatchDemo(path, "*", true);
Console.ReadLine();
}
private static void CreateRndTextFiles()
{
for(int i=0;i<10000;i++)
{
Thread.Sleep(10);
File.Create(Guid.NewGuid().ToString() + ".txt");
}
}
static void FileSystemWatchDemo(string path,string filter,bool includeSubDirs)
{
using(FileSystemWatcher fsw=new FileSystemWatcher(path))
{
fsw.Created += FileCreatedChangedDeteled;
fsw.Changed += FileCreatedChangedDeteled;
fsw.Deleted += FileCreatedChangedDeteled;
fsw.Renamed += FswRenamed;
fsw.Error += FswError;
fsw.IncludeSubdirectories = includeSubDirs;
fsw.EnableRaisingEvents = true;
Console.WriteLine("Listening for events-press <enter> to end");
Console.ReadLine();
}
}
private static void FswError(object sender, ErrorEventArgs e)
{
Console.WriteLine($"Error:{e.GetException().Message}");
}
private static void FswRenamed(object sender, RenamedEventArgs e)
{
Console.WriteLine($"Renamed:{e.OldFullPath}->{e.FullPath}");
}
private static void FileCreatedChangedDeteled(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"File {e.FullPath} has been {e.ChangeType}");
}