C# ini 文件的读写类

ini文件的编码

如何指定编码格式
ini文件一般采用GB2312编码(中文操作系统的ANSI就是GB2312)

ini文件的注释

一般是分号开头,也可以是#号,或者直接写注释也行
ini文件本身只是一个文本格式的文件,你可以自己定义,只要你真正的数据,如小节名,键名不要使用这些怪字符就可以了
注释一定要单独占一行

C# ini 文件的读写类

using System.IO;
using System.Runtime.InteropServices;
using System.Text;

namespace Common
{
    /// <summary>
    /// 简单说明以下方法Write()和Read()的参数。
    /// 
    ///    Read()里的 def 对应API函数的 def参数,它的值由用户指定,是当在配置文件中没有找到具体的 key 时,就用 def的值来代替。
    ///    
    ///    [section]
    ///    key=value
    /// </summary>
    public static class Ini
    {
        #region API函数声明
        [DllImport("kernel32")]
        //返回取得字符串缓冲区的长度
        private static extern long GetPrivateProfileString(string section, string key,
            string def, StringBuilder retVal, int size, string filePath);

        [DllImport("kernel32")]
        //返回0表示失败,非0为成功
        private static extern long WritePrivateProfileString(string section, string key,
          string val, string filePath);
        #endregion

        #region 读Ini文件
        public static string Read(string Section, string Key, string def = "", string iniFilePath = "setting")
        {
            iniFilePath = $@".\ini\{iniFilePath}.ini";

            if (File.Exists(iniFilePath))
            {
                StringBuilder retVal = new StringBuilder(1024);
                Ini.GetPrivateProfileString(Section, Key, def, retVal, 1024, iniFilePath);
                return retVal.ToString();
            }
            else
            {
                return string.Empty;
            }
        }
        #endregion

        #region 写Ini文件
        public static void Write(string Section, string Key, string Value, string iniFilePath = "setting")
        {
            iniFilePath = $@".\ini\{iniFilePath}.ini";

            if (!File.Exists(iniFilePath))
            {
                //创建文件
                using (FileStream fs = File.Create(iniFilePath))
                {
                }

            }

            if (File.Exists(iniFilePath))
            {
                 Ini.WritePrivateProfileString(Section, Key, Value, iniFilePath);
            }
         
        }
        #endregion
    }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值