【C#基础学习之INI文件操作】

本文介绍了C#中操作INI配置文件的基础知识,包括外部函数的引入和类的封装。文中提到,INI文件以键值对形式存储,通过Section分区。文章重点讲解了如何使用CharSet进行读取,并封装了一个类来保存和加载配置文件,利用反射处理类的属性,以及在加载失败时使用DefaultValueAttribute设定默认值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C#基础学习之操作Ini文件(一)

本文比较基础,也就是抄别人的东西做个总结,INI文件的操作需要用到一些外部函数,以及部分的方法会在下面介绍到,还有就是一些简单的封装。

INI文件操作外部函数引入

INI配置文件采用的·是键值对模式,用Section进行分区,在Section里面存储键值对。
其特点如下:

  1. 针对INI文件的API操作方法,其中的节点(Section)、键(KEY)都不区分大小写,如果指定的INI文件不存在,会自动创建该文件。
  2. CharSet定义的时候使用了什么类型,在使用相关方法时必须要使用相应的类型
    例如 :GetPrivateProfileSectionNames声明为CharSet.Auto,那么就应该使用 Marshal.PtrToStringAuto来读取相关内容。
    如果使用的是CharSet.Ansi,就应该使用Marshal.PtrToStringAnsi来读取内容。
    配置文件组成

这里我主要用到的引用方法:

/// <summary>
        /// 将指定的键和值写到指定的Section,如果已经存在则替换
        /// </summary>
        /// <param name="lpAppName">节点名称</param>
        /// <param name="lpKeyName">键名称。如果为null,则删除指定的节点及其所有的项目</param>
        /// <param name="lpString">值内容。如果为null,则删除指定节点中指定的键。</param>
        /// <param name="lpFileName">INI文件</param>
        /// <returns>操作是否成功</returns>
        [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        private static extern bool WritePrivateProfileString(string lpAppName, string lpKeyName, string lpString, string lpFileName);
        ///获取节点信息
        [System.Runtime.InteropServices.DllImport("kernel32.dll", CharSet = CharSet.Auto)]
        private static extern uint GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, uint nSize, string lpFileName);

就这样加载和保存配置文件的函数都引用了一个进来,然后将两个引用的函数进行简单加工一下,保存配置文件的函数

/// 保存配置文件
 public static bool SaveConfig(string section, string key, string value)
 {
   
            if (string.IsNullOrEmpty(section) || string.IsNullOrEmpty
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值