.Net Framework和.Net Core 如何读取本地文件

11 篇文章 0 订阅
2 篇文章 0 订阅

前言

最近学习.Net Core 发现读取本地配置文件 和之前的Framework的方式不一样了,所以发表一篇文章记录一下,百度有找一些资料 但是怎么说呢,好像都是各玩各的(手动笑哭),所以我弄清楚这两者的区别后,整理了一下 当成一篇文章,要是有什么说的不对的地方,欢迎大家留言评论,我好进行修改,咱们能不耽误别人就不要耽误别人了。

Framework中的使用

先展示代码:


        /// <summary>
        /// 获得当前绝对路径
        /// </summary>
        /// <param name="strPath">指定的路径</param>
        /// <returns>绝对路径</returns>
        public static string GetMapPath(string strPath)
        {
            //区分判断是否是网络路径
            if (strPath.ToLower().StartsWith("http://")|| strPath.ToLower().StartsWith("https://"))
            {
                return strPath;
            }
            //web程序引用
            if (HttpContext.Current != null)
            {
                //当前浏览器有连接状态,直接获取网站根目录  
                //很多朋友可能用的比较多的是Server.MapPath()这种方式
                return HttpContext.Current.Server.MapPath(strPath);
            }
            else //非web程序引用
            {
                strPath = strPath.Replace("/", "\\");
                if (strPath.StartsWith("\\"))
                {
                    //注意路径格式一定要全部转换  例子:F:\\web\\root\\update 或者 F:\\web\\root\\update\\test.img这种格式
                    strPath = strPath.Substring(strPath.IndexOf('\\', 1)).TrimStart('\\');
                }
                return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath);
            }
        }

上面的获取文件的绝对路径应该比较熟悉 ,用到多的地方的话就可以理解。

Core中的使用


		/// <summary>
        /// 获得当前绝对路径
        /// </summary>
        /// <param name="strPath">指定的路径</param>
        /// <returns>绝对路径</returns>
        public static string GetMapPath(string strPath)
        {
            strPath = strPath.Replace("/", "\\");
            if (strPath.StartsWith("\\"))
            {
                    //注意路径格式一定要全部转换  例子:F:\\web\\root\\update 或者 F:\\web\\root\\update\\test.img这种格式
                strPath = strPath.Substring(strPath.IndexOf('\\', 1)).TrimStart('\\');
            }
            return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath);
        }

注意区分,在 .Net Core中是没有HttpContext.Current 这个概念了,Core的概念调整成了模块化处理了,需要什么的时候添加什么模块。

扩展(校验文件夹是否存在)

			//这个是属于IO操作,倒是不区分Framework还是Core都是一样的
			//需要引用 using System.IO;
 			//如果目录不存在则创建该目录
            if (!IsExistDirectory(directoryPath))
            {
                Directory.CreateDirectory(directoryPath);
            }
            

尾语

注意两种方式都有用到 System.IO.Path这个类处理,说明这个是底层,可以直接使用。
这样我们可以获取到对应的文件所在的绝对路径 之后,咱们可以自定义读取文件的内容信息。可以达到服务器上缓存一些配置,或者数据信息,调用的时候检查是否存在缓存,或者文件,减少数据库访问(手动机智)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值