tnblog
首页
视频
资源
登录

.net core 文件提供程序

5920人阅读 2020/8/4 11:01 总访问:3467205 评论:0 收藏:0 手机
分类: .net后台框架

.netcore

.net core 文件提供程序

文件提供程序核心类型

  • IFileProvider (提供文件读写程序的接口,通过抽象的定义,让我们与具体的文件的代码进行隔离)
  • IFileInfo
  • IDirectoryContents

内置文件提供程序

  • PhysicalFileProvider(物理文件提供程序)
  • EmbeddedFileProvider(嵌入式的文件提供程序)
  • CompositeFileProvider(组合文件的提供程序,多源合一)

IFileProvider的定义

方法名 注释
IFileInfo GetFileInfo(string subpath) 获取文件信息
IDirectoryContents GetDirectoryContents(string subpath) 获取我们指定目录下的目录信息

IDirectoryContents的定义

IDirectoryContents 实现了 IEnumberable<IFileInfo> 接口,所以我们可以获取目录下文件的 IFileInfo

属性名 注释
bool Exists 当前目录是否存在

IFileInfo的定义

属性名 注释
bool Exists 当前文件是否存在
long Length 文件的长度
string PhysicalPath 当前物理地址
string Name 文件名
DateTimeOffset LastModified 最后修改的时间
bool IsDirectory 它是否是一个目录
Stream CreateReadStream() 读取我们的文件流

目录

项目结构



打印出编译目录下的程序集


Program.cs
  1. #region 映射程序根目录
  2. IFileProvider provider = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory);
  3. var contents = provider.GetDirectoryContents("/");
  4. foreach (var item in contents)
  5. {
  6. Console.WriteLine(item.Name);
  7. }
  8. #endregion

运行结果


获取嵌入式资源中的内容


a.html设置为嵌入式资源

Program.cs
  1. #region 获取嵌入式资源文件内容
  2. IFileProvider provider = new EmbeddedFileProvider(typeof(Program).Assembly);
  3. //获取嵌入式资源文件
  4. var html = provider.GetFileInfo("a.html");
  5. //读取文件流
  6. Stream stream = html.CreateReadStream();
  7. //定义流字符的长度
  8. byte[] b = new byte[stream.Length];
  9. //写入byte中
  10. stream.Read(b, 0, b.Length);
  11. //转换成字符串类型
  12. string htmlText = Encoding.Default.GetString(b);
  13. Console.WriteLine($"Context: {htmlText}");
  14. #endregion

运行结果



获取嵌入式资源中的内容


Program.cs
  1. #region 组合目录程序
  2. IFileProvider provider1 = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory);
  3. IFileProvider provider2 = new EmbeddedFileProvider(typeof(Program).Assembly);
  4. //组合 provider1 与 provider2 使它们成为一个目录
  5. IFileProvider provider = new CompositeFileProvider(provider1, provider2);
  6. var contents = provider.GetDirectoryContents("/");
  7. foreach (var item in contents)
  8. {
  9. Console.WriteLine(item.Name);
  10. }
  11. #endregion

运行结果


未完待续。。。。


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

net core 使用 EF Code First

下面这些内容很老了看这篇:https://www.tnblog.net/aojiancc2/article/details/5365 项目使用多层,把数据库访问...

.net mvc分部页,.net core分部页

.net分部页的三种方式第一种:@Html.Partial("_分部页")第二种:@{ Html.RenderPartial("分部页");}...

StackExchange.Redis操作redis(net core支持)

官方git开源地址https://github.com/StackExchange/StackExchange.Redis官方文档在docs里边都是官方的文档通过nuget命令下...

.net core 使用session

tip:net core 2.2后可以直接启用session了,不用在自己添加一次session依赖,本身就添加了使用nuget添加引用Microsoft.AspN...

通俗易懂,什么是.net?什么是.net Framework?什么是.net core?

朋友圈@蓝羽 看到一篇文章写的太详细太通俗了,搬过来细细看完,保证你对.NET有个新的认识理解原文地址:https://www.cnblo...

asp.net core2.0 依赖注入 AddTransient与AddScoped的区别

asp.net core主要提供了三种依赖注入的方式其中AddTransient与AddSingleton比较好区别AddTransient瞬时模式:每次都获取一...

.net core 使用 Kestrel

Kestrel介绍 Kestrel是一个基于libuv的跨平台web服务器 在.net core项目中就可以不一定要发布在iis下面了Kestrel体验可以使...

net core中使用cookie

net core中可以使用传统的cookie也可以使用加密的cookieNET CORE中使用传统cookie设置:HttpContext.Response.Cookies.Appe...

net core项目结构简单分析

一:wwwrootwwwroot用于存放网站的静态资源,例如css,js,图片与相关的前端插件等lib主要是第三方的插件,例如微软默认引用...

net core使用EF之DB First

一.新建一个.net core的MVC项目新建好项目后,不能像以前一样直接在新建项中添加ef了,需要用命令在添加ef的依赖二.使用Nug...

.net core使用requestresponse下载文件下载excel等

使用request获取内容net core中request没有直接的索引方法,需要点里边的Query,或者formstringbase64=Request.Form["f...

iframe自适应高度与配合net core使用

去掉iframe边框frameborder="0"去掉滚动条scrolling="no"iframe 自适应高度如果内容是固定的,那么就...

net core启动报错Unable to configure HTTPS endpoint. No server certificate was specified

这是因为net core2.1默认使用的https,如果使用Kestrel web服务器的话没有安装证书就会报这个错其实仔细看他的错误提示,其...

net core中使用url编码与解码操作

net core中暂时还没有以前asp.net与mvc中的server对象。获取url的编码与解码操作不能使用以前的server对象来获取。使用的是...

下载net core

官方下载地址:https://dotnet.microsoft.com/download 进来之后就可以看到最新的下载版本可以直接点击下载,也可以下载其...

net core使用依赖注入来装载EF的上下文对象

妹子情人节快乐~.net core中用了不少的依赖注入,官方文档中也推荐使用。这样使用依赖注入来管理ef对象,还是比较科学,比如...
这一世以无限游戏为使命!
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术