
.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
#region 映射程序根目录
IFileProvider provider = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory);
var contents = provider.GetDirectoryContents("/");
foreach (var item in contents)
{
Console.WriteLine(item.Name);
}
#endregion
运行结果
获取嵌入式资源中的内容
将
a.html
设置为嵌入式资源
Program.cs
#region 获取嵌入式资源文件内容
IFileProvider provider = new EmbeddedFileProvider(typeof(Program).Assembly);
//获取嵌入式资源文件
var html = provider.GetFileInfo("a.html");
//读取文件流
Stream stream = html.CreateReadStream();
//定义流字符的长度
byte[] b = new byte[stream.Length];
//写入byte中
stream.Read(b, 0, b.Length);
//转换成字符串类型
string htmlText = Encoding.Default.GetString(b);
Console.WriteLine($"Context: {htmlText}");
#endregion
运行结果
获取嵌入式资源中的内容
Program.cs
#region 组合目录程序
IFileProvider provider1 = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory);
IFileProvider provider2 = new EmbeddedFileProvider(typeof(Program).Assembly);
//组合 provider1 与 provider2 使它们成为一个目录
IFileProvider provider = new CompositeFileProvider(provider1, provider2);
var contents = provider.GetDirectoryContents("/");
foreach (var item in contents)
{
Console.WriteLine(item.Name);
}
#endregion
运行结果
未完待续。。。。
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术