我有一个需要文件监视的项目,我认为我已经覆盖了文件,但是文件系统事件的事件没有触发。
这是代码:
static void Main(string[] args)
{
FileSystemWatcher fsw = new FileSystemWatcher();
fsw.Path = args[0] != null ? args[0] : @"/files/";
fsw.Created += Fs_Created;
fsw.Changed += Fs_Changed;
fsw.Deleted += Fs_Deleted;
fsw.Renamed += Fs_Renamed;
Console.WriteLine("Waiting for Files....");
Console.WriteLine("(Press Any Key To Exit)");
Console.ReadLine();
}
private static void Fs_Renamed(object sender, RenamedEventArgs e)
{
Console.WriteLine($"File {e.OldName} has been renamed to {e.Name}");
}
private static void Fs_Deleted(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"File {e.Name} has been deleted.");
}
private static void Fs_Changed(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"File {e.Name} Has Been Changed");
}
private static void Fs_Created(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"File {e.Name} is new to the Directory");
}
}
这只是为了得到示例,但问题是当fs事件发生时控制台中没有输出。更改,删除,重命名,创建,没有。
在.net核心中有什么不同吗?我看了三个不同的例子,都是相似的。我已经看到事件处理程序被调用实例化如下:fsw.Created += new FileSystemEventHandler(Fs_Created);
你似乎错过了fsw.EnableRaisingEvents = true;