【发布时间】:2019-07-16 22:09:11
【问题描述】:
是否可以配置 FileSystemWatcher 来识别所有文件,但名称包含文本字符串的文件除外?
例如,我想要一个 FileSystemWatcher 来识别所有文件,除了 .xml 文件。这个可以吗?
我目前有:
FileSystemWatcher watcher = new FileSystemWatcher()
{
Filter = "*" // identifies all files
};
watcher.Created += OnChanged;
private void OnChanged(object source, FileSystemEventArgs args)
{
if (args.Name.ToLower().EndsWith(".xml"))
{
return;
}
// otherwise, do some stuff
}
这可以完成工作,但如果可能的话,我宁愿在找到 .xml 时不触发该事件。
【问题讨论】:
-
从其他类似的问题,(如this),我认为这是不可能的,但我会在这里问这个问题,看看是否有人知道。
-
认为您正在寻找Filter 属性。
-
没有。过滤器用于包含文件。顺便说一句,使用Path.GetExtension() 提取文件扩展名。顺便说一句,您不应该在事件处理程序中管理任何内容。将文件名传递给处理文件处理的 manager 类(将作业入队/出队,然后将它们传递给实际的处理程序,将其视为预处理器)。它将负责丢弃黑名单中的内容。
标签: c# filesystemwatcher