.net core文件系统简介

左心房为你撑大大i 提交于 2020-02-03 01:04:49

在asp.net core程序中,我们可以通过如下代码开启对Web 根目录内的文件静态访问功能:

    app.UseStaticFiles();

如果要提供更高级的选项,例如:将其它的物理文件夹下的文件作为静态资源提供,可以使用如下代码:

app.UseStaticFiles(new StaticFileOptions{    FileProvider = new PhysicalFileProvider("D:\\MyStaticFiles")),    RequestPath  = "/StaticFiles"});

这里设置了一个的类型为IFieProvider的属性,IFileProvider 是.net core的抽象文件系统接口,它主要提供如下功能:

IFileProvider 有三种实现。

  1.PhysicalFileProvider

PhysicalFileProvider 是最常用的一个对象,它提供对物理文件系统的访问。 并将所有路径范围限定在一个目录及其子目录中。

  2. ManifestEmbeddedFileProvider

ManifestEmbeddedFileProvider 用于访问嵌入在程序集中的文件。可将嵌入的资源文件抽象为一个文件夹。它的一个常见的例子是类似于swagger那样,将js,图片等静态的资源文件和页面文件一起打包到程序集中,这样不用发布资源文件,页面可以直接访问程序集的资源文件。

  3.CompositeFileProvider

CompositeFileProvider将一个或多个 IFileProvider聚合在一起,形成一个IFileProvider。

其它

IFileProvider是一个抽象的文件系统,除了在asp.net core的静态资源文件外,其它的不少地方也在使用它,如配置文件等。

此外,除了统一资源的访问接口外,IFileProvider也提供了变更通知,这里就不多介绍了。感兴趣的朋友可以参考下面的微软官方文档。

参考文章:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!