当前位置: 首页 > news >正文

文件系统设计详解

        抽象的文件系统以目录的形式来组织文件,我们可以利用该文件系统来读取某个文件的内容,也可以对目录或者文件实施监控并及时获取变化的通知。

IChangeToken

        IChangeToken对象就是一个与某组监控数据相关联的“令牌”(Token),它能够在检测到数据改变时及时对外发出一个通知。

①HasChanged

        当IChangeToken 对象关联的数据发生改变时,返回true

②RegisterChangeCallback

        在数据发生改变时可以自动执行的回调,该方法会返回一个 IDisposable 对象,可以用其Dispose方法解除注册的回调 

③ActiveChangeCallbacks

        当数据发生变化时是否需要主动执行注册的回调操作

 

 

IFileProvider

不论是目录还是文件都通过一个 IFileInfo 对象来表示

CreatCreateReadStream方法返回的Stream对象读取文件的内容 

 PhysicalFileProvider

System.IO 命名空间下定义了一整套针对操作物理目录和文件的API,但PhysicalFileProvider最终也是通过调用这些API来完成相关的IO操作的。

PhysicalFileProvider的 Watch方法中指定的 Globbing Pattern表达式必须是针对当前根目录的相对路径,可以使用“/”或者“./”前缀,也可以不采用任何前缀。一旦使用了绝对路径(如“c:\test\*.txt”)或者“../”前缀(如“../test/*.txt”),不论解析出的文件是否存在于PhysicalFileProvider 的根目录下,这些文件都不会被监控。

 

EmbeddedFileProvider 

 由于内嵌于程序集的资源文件采用扁平化存储形式,所以通过EmbeddedFileProvider 构建的文件系统中并没有目录层级的概念。可以认为所有的资源文件都保存在程序集的根目录下


对于内嵌资源文件系统来说,根本就不存在所谓的文件更新问题,所以它的Watch方法会返回一个HasChanged属性总是False的IChangeToken对象

将项目文件变成内嵌资源 

在.csproj文件中添加<ItemGroup>/<EmbeddedResource>元素,并利用Include属性显式地将对应的资源文件包含进来

<EmbeddedResource>具有两个属性:Include 属性用来添加内嵌资源文件,Exclude 属性负责排除不符合要求的文件

http://www.lryc.cn/news/45531.html

相关文章:

  • 好看~立马启动python实现美女通通下
  • Git 安装设置
  • Python-闭包
  • Gitlab中Pipeline语法四
  • Go语言精修(尚硅谷笔记)第五章
  • 三、MySQL 高级(DML 增删改)
  • 面向AI编程的本质是什么?
  • 深入浅出——深度学习训练中的warmup
  • 你知道如何用C语言将格式化数据和字符串相互转换吗?
  • 免费一键生成原创文章-原创文章批量生成
  • 【数据库管理】④重做日志Redo Log
  • 5-python文件操作
  • 企业级Oracle入门Linux/Unix基础①
  • NexNoSQL Client:Elasticsearch、Redis、MongoDB三合一的可视化客户端管理工具
  • 如果大学能重来,我绝对能吊打90%的大学生,早知道这方法就好了
  • FactoryBean是现在的执行时机
  • 自定义注解使用
  • 2023年全国最新高校辅导员精选真题及答案42
  • Python模拟星空
  • IDE集成开发工具-IDEA(一)之IDE的概念
  • 基于Java+Springboot+vue的汽车租赁系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】
  • 【笔记】关于Maven中<optional>标签的理解
  • JavaScript函数及面向对象
  • 【chartGPT】我们要不要搞chartGPT?
  • java——date时间类型操作
  • 应急响应——IDSIPSmsf流量后门分析
  • 项目二:电子骰子
  • D. Genius‘s Gambit(很多情况)
  • jsp824汽车维修保养管理系统javaEE+mysql
  • Linux下C/C++ redis协议(RESP)解析