首页 > Web开发 > 详细

.Net Core FileProvider

时间:2020-04-16 17:14:23      阅读:67      评论:0      收藏:0      [点我收藏+]

详细介绍参照:https://www.cnblogs.com/artech/p/net-core-file-provider-02.html

 

using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Primitives;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Threading.Tasks;

namespace DynamicRegister1
{
    public class FileMoniter
    {
        public event EventHandler<EventArgs> FileChanged;//创建代理
        public FileMoniter()
        {
            IFileProvider fileProvider = new PhysicalFileProvider(@"D:\test");
            ChangeToken.OnChange(() => fileProvider.Watch("test.txt"), () =>
            {

                if (FileChanged != null)
                {
                    FileChanged.Invoke("11", null);
                }
                Console.WriteLine($"{DateTime.Now}_");
            });

            // 注册2个代理,监听
            FileChanged += Change;
            FileChanged += Change1;
        }
        public void Change(Object sender, EventArgs args)
        {
            Console.WriteLine($"{DateTime.Now}_");
        }
        public void Change1(Object sender, EventArgs args)
        {
            Console.WriteLine($"{DateTime.Now}_");
        }
    }
}

  监控FileProvider所在目录或者文件的变化,我们可以调用它的Watch方法,当时前提是对应的FileProvider提供了这样的监控功能。这个方法接受一个字符串类型的参数filter,我们可以利用这个参数指定一个表达式来筛选需要监控的目标目录或文件。就目前预定义的这几个FileProvider来说,只有PhysicalFileProvider提供针对文件的监控功能。对于PhysicalFileProvider来说,它会委托一个FileSystemWatcher对象来完成最终的文件监控任务。在指定删选表达式的时候,我们可以指定需要被监控的某个具体目录或者文件路径,也可以采用下表所示的通配符“*”。

Filter

Description

foobar/data.txt

存储在目录foobar下的文件data.txt。

foobar/*.txt

存储在目录foobar下的所有.txt文件。

foobar/*.*

存储在目录foobar下的所有文件。

foobar//*.*

存储在目录foobar的所有子目录下的所有文件。

.Net Core FileProvider

原文:https://www.cnblogs.com/hnzheng/p/12713945.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!