【问题标题】:FileSystemWatcher - Filter to identify all files except those matching matching a stringFileSystemWatcher - 过滤以识别除匹配字符串的文件之外的所有文件
【发布时间】: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


【解决方案1】:

您可以改为在文件名中使用模式来观看。

*files*.* 匹配所有包含字符串files的文件

【讨论】:

    猜你喜欢
    • 2018-05-28
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    相关资源
    最近更新 更多