ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

.Net Core FileProvider

2020-04-16 17:01:42  阅读:422  来源: 互联网

标签:Core foobar System FileProvider using Net txt public FileChanged


详细介绍参照: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的所有子目录下的所有文件。

标签:Core,foobar,System,FileProvider,using,Net,txt,public,FileChanged
来源: https://www.cnblogs.com/hnzheng/p/12713945.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有