了解ASP.NET Core 中的文件提供程序
2024-01-09 06:29:22
写在前面
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文件,当文件内容发生变化时就会将最新的内容打印到控制台。
文章来源:https://blog.csdn.net/rjcql/article/details/135468597
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!