在提供的示例中,我到处都能找到这两行代码,它们用于为文件系统监视程序设置过滤器..

FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Filter = "*.txt";
//or
watcher.Filter = "*.*";

但我希望我的观察者监视更多的文件类型,但不是全部.我怎样才能做到这一点:

//watcher.Filter = "*.txt" | "*.doc" | "*.docx" | "*.xls" | "*.xlsx";

我试过这些:

 watcher.Filter = "*.txt|*.doc|*.docx|*.xls|*.xlsx"; 
 // and
 watcher.Filter = "*.txt;*.doc;*.docx;*.xls;*.xlsx*";

两种方法都不起作用.这只是基础,但我很怀念.谢谢

推荐答案

自从网络核心3.x和.Net 5预览您可以简单地向Filters个集合添加多个过滤器.

var watcher = new FileSystemWatcher();
watcher.Path = "/your/path";
watcher.Filters.Add("*.yml");
watcher.Filters.Add("*.yaml");
watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName;
watcher.EnableRaisingEvents = true;

或者,如果您喜欢对象初始值设定项,

var watcher = new FileSystemWatcher
    {
        Path = "/your/path",
        Filters = {"*.yml", "*.yaml"},
        NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName,
        EnableRaisingEvents = true,
    };

.net相关问答推荐

竖线在 PropertyGroup .csproj 文件中的含义

从删除项目时重新索引的列表中删除项目的最佳算法是什么?

.NET MAUI 的登录页面

在 C# 中生成随机小数

单击关闭按钮时隐藏表单而不是关闭

JavaScript 中的IsNullOrWhitespace?

如何在任务栏顶部全屏显示 Windows 窗体?

有什么方法可以在不重新编译的情况下覆盖 .NET Windows 服务名称?

如何遍历字典并更改值?

何时在 C#/.NET 中使用指针?

System.String.Copy 在 .NET 中有什么用?

在同一解决方案中引用 2 个不同版本的 log4net

为什么有些对象属性是 UnaryExpression 而有些是 MemberExpression?

资源(.resx)文件有什么好处?

DataGridView 在我的两个屏幕之一上的可怕重绘性能

使用语句与最终try

Environment.GetFolderPath(...CommonApplicationData) 在 Vista 上仍然返回C:\Documents and Settings\

如何使用通用扩展方法中的字符串列名在 IQueryable 上应用 OrderBy?

LINQ 可以与 IEnumerable 一起使用吗?

在类型 c# 上切换大小写