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

了解ASP.NET Core 中的文件提供程序

写在前面

ASP.NET Core 通过文件提供程序来抽象化文件系统访问。分为物理文件提供程序(PhysicalFileProvider)和清单嵌入的文件提供程序(ManifestEmbeddedFileProvider)还有复合文件提供程序(CompositeFileProvider );其中PhysicalFileProvider 提供对物理文件系统的访问,而ManifestEmbeddedFileProvider 用于访问嵌入在程序集中的文件,而 CompositeFileProvider 合并 IFileProvider 实例,以便公开一个接口来处理多个提供程序中的文件,相当于前面两种的混合集。

物理和清单嵌入文件提供程序都实现了IFileProvider 接口,然后通过 IFileProvider.Watch 方法提供一种方法来监视一个或多个文件或目录的更改。

使用时需要通过NuGet安装两个拓展:

代码实现

 本文只提供了 PhysicalFileProvider 的代码示例:

using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Primitives;
using System.Text;var physicalFileProvider = new PhysicalFileProvider(@"E:\softwares");// 通过表达式筛选需要监控的文件或目录(Watch可以使用例如 *.* 进行文件通配)
ChangeToken.OnChange(() => physicalFileProvider.Watch("Test.txt"), async () =>
{Console.Clear();IFileInfo fileInfo = physicalFileProvider.GetFileInfo("Test.txt");await using var stream = fileInfo.CreateReadStream();var buffer = new byte[stream.Length];await stream.ReadAsync(buffer, 0, buffer.Length);Console.WriteLine(Encoding.Default.GetString(buffer));
});Console.Read();

调用示例

在示例中由物理文件提供程序指定的目录中,监控Test.txt文件,当文件内容发生变化时就会将最新的内容打印到控制台。

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

相关文章:

  • 竞赛保研 基于深度学习的人脸性别年龄识别 - 图像识别 opencv
  • JavaScript音视频,JavaScript简单获取电脑摄像头画面并播放
  • 《JVM由浅入深学习【五】 2024-01-08》JVM由简入深学习提升分享
  • FastDFS之快速入门、上手
  • Vue 中的 ref 与 reactive:让你的应用更具响应性(中)
  • 【数据库基础】Mysql与Redis的区别
  • JVM工作原理与实战(六):类的生命周期-连接阶段
  • 【OCR】 - Tesseract OCR在Windows系统中安装
  • YOLOv8改进 | 损失函数篇 | SlideLoss、FocalLoss分类损失函数助力细节涨点(全网最全)
  • 计算机网络试题——填空题(附答案)
  • 第二证券:股票私募仓位指数创近八周新高
  • 35-javascript基础,引入方式;变量命名规范
  • 笔试案例2
  • 【嵌入式-网络编程】vmware中使用UDP广播失败问题
  • 2020年认证杯SPSSPRO杯数学建模D题(第二阶段)让电脑桌面飞起来全过程文档及程序
  • vue3 修饰符大全(近万字长文)
  • HarmonyOS@State装饰器:组件内状态
  • 如何让GPT支持中文
  • 使用开源通义千问模型(Qwen)搭建自己的大模型服务
  • Java工程师面试题解析与深度探讨
  • Linux下安装JET2
  • 【PostgreSQL】表管理-表继承
  • Dijkstra算法——邻接矩阵实现+路径记录
  • Vim基础操作
  • Mac上安装 Node.js 的版本管理工具 n,以及 n 使用,的使用
  • Node.js和npm
  • leetcode每日一题43
  • 每天刷两道题——第十天
  • C语言入门教程,C语言学习教程(第一部分:编程基础 )一
  • uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -用户信息修改实现