我目前正在尝试使用 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 .您不能使用 Filter 属性排除任何内容。它仅包括匹配过滤器的对象。
如果您想排除某些东西,请在 FSW 触发的事件中执行。
关于c# - FileSystemWatcher 类 - 排除目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6065330/