我目前正在尝试排除filesystemwatcher类的目录,尽管我已经使用过:
FileWatcher.Filter = "C:\\$Recycle.Bin";
和
FileWatcher.Filter = "$Recycle.Bin";
它可以编译,但当我尝试此操作时不会显示任何结果。
如果我取出过滤器,所有文件加载正常,代码如下:
static void Main(string[] args)
{
string DirPath = "C:\\";
FileSystemWatcher FileWatcher = new FileSystemWatcher(DirPath);
FileWatcher.IncludeSubdirectories = true;
FileWatcher.Filter = "*.exe";
// FileWatcher.Filter = "C:\\$Recycle.Bin";
// 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();
}
最佳答案
你可能还没读过http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.filter.aspx。不能排除具有筛选器属性的任何内容。它只包括与过滤器匹配的对象。
如果要排除某些内容,请在fsw触发的事件中执行。