我使用的是FileSystemWatcher
上(在Windows上运行),我的C#应用程序,才能在我的应用程序来更新我正在浏览的文件。 当我浏览本地目录,它工作得很好。 当一个文件被重命名,删除或添加我通知。 但是,例如当我重命名网络上的文件驱动首次FileSystemWatcher
通知我重命名操作,然后,当我重新命名相同的文件或其他文件中, FileSystemWatcher
通知我的错误:
the specified server cannot perform the requested operation
。
然后FileSystemWatcher的没有及时通知我任何事情。
有时候,我可以重命名前两次的FileSystemWatcher的没有及时通知我没事...
这里是我的测试代码:
static void Main(string[] args)
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"N:\prive\defFolder";
watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite;
watcher.Changed += new FileSystemEventHandler(watcher_Changed);
watcher.Created += new FileSystemEventHandler(watcher_Changed);
watcher.Deleted += new FileSystemEventHandler(watcher_Changed);
watcher.Renamed += new RenamedEventHandler(watcher_Renamed);
watcher.Error += new ErrorEventHandler(watcher_Error);
watcher.EnableRaisingEvents = true;
Console.Read();
watcher.Dispose();
}
static void watcher_Error(object sender, ErrorEventArgs e)
{
Console.WriteLine("error : " + e.GetException().Message);
}
static void watcher_Renamed(object sender, RenamedEventArgs e)
{
Console.WriteLine("rename success");
}
static void watcher_Changed(object sender, FileSystemEventArgs e)
{
Console.WriteLine("change success");
}