C#对INI配置文件进行读写操作方法

cs 复制代码
        #region 读写ini配置文件

        /// <summary>
        /// 对INI文件进行读写
        /// </summary>
        
        class INIHelper
        {
            /// <summary>
            /// 从INI文件中读取数据
            /// </summary>
            /// <param name="filePath">INI文件的全路径</param>
            /// <param name="rootValue">根节点值,例如根节点[URLConfig]的值为:URLConfig</param>
            /// <param name="key">根节点下的键,例如url</param>
            /// <param name="defValue">当标记值未设定或不存在时的默认值</param>
            /// <returns></returns>
            public static string ReadFromINI(string filePath, string rootValue, string key, string defValue = "")
            {
                StringBuilder sb = new StringBuilder(1024);
                GetPrivateProfileString(rootValue, key, defValue, sb, 1024, filePath);
                return sb.ToString();
            }


            /// <summary>
            /// 对INI文件进行写入操作
            /// </summary>
            /// <param name="filePath">INI文件的全路径</param>
            /// <param name="rootValue">根节点值,例如根节点[URLConfig]的值为:URLConfig</param>
            /// <param name="key">根节点下的键,例如url</param>
            /// <param name="newVal">想要修改的内容</param>
            /// <returns></returns>
            public static void WriteToINI(string filePath, string rootValue, string key, string newVal)
            {

                WritePrivateProfileString(rootValue, key, newVal, filePath);

            }


            /// <summary>
            /// 对INI文件进行读取操作
            /// </summary>
            /// <param name="IpAppName">表示INI文件内部根节点的值</param>
            /// <param name="IpKeyName">表示根节点下子标记的值</param>
            /// <param name="IpDefault">表示当标记值未设定或不存在时的默认值</param>
            /// <param name="IpReturnString">返回读取节点的值</param>
            /// <param name="nSize">读取的节点内容的最大容量</param>
            /// <param name="IpFileName">文件的全路径</param>
            /// <returns></returns>
            [System.Runtime.InteropServices.DllImport("kernel32")]
            static extern int GetPrivateProfileString(string IpAppName, string IpKeyName, string IpDefault, StringBuilder IpReturnString, int nSize, string IpFileName);


            /// <summary>
            /// 对INI文件进行写入操作
            /// </summary>
            /// <param name="mpAppName">INI文件内部根节点的值</param>
            /// <param name="mpKeyName">将要修改的标记名称</param>
            /// <param name="mpDefault">想要修改的内容</param>
            /// <param name="mpFileName">INI文件的全路径</param>
            /// <returns></returns>
            [System.Runtime.InteropServices.DllImport("kernel32")]
            static extern long WritePrivateProfileString(string mpAppName, string mpKeyName, string mpDefault, string mpFileName);
        }

        #endregion

调用方法:

例如config.ini文件里面内容为:

URLConfig

url = www.csdn.net

url2= /baike/

url3= /map/

读配置文件:

cs 复制代码
string filePath = System.Environment.CurrentDirectory + @"/config.ini";  //设置config的绝对路径

string url = INIHelper.ReadFromINI(filePath, "URLConfig", "url").Replace(" ", "");

写配置文件:

cs 复制代码
 string filePath = System.Environment.CurrentDirectory + @"/config.ini";  //设置config的绝对路径
INIHelper.WriteToINI(filePath, "URLConfig", "Url", "www.eastcoms.com");
相关推荐
bugcome_com6 小时前
零基础入门C#:一篇搞懂核心知识点
c#
程序员敲代码吗9 小时前
如何通过命令行启动COMSOL的参数化、批处理和集群扫描
java·c#·bash
缺点内向11 小时前
C#: 告别繁琐!轻松移除Word文档中的文本与图片水印
c#·自动化·word·.net
喵叔哟12 小时前
06-ASPNETCore-WebAPI开发
服务器·后端·c#
2501_9307077812 小时前
使用 C# .NET 从 PowerPoint 演示文稿中提取背景图片
c#·powerpoint·.net
初级代码游戏12 小时前
套路化编程 C# winform 自适应缩放布局
开发语言·c#·winform·自动布局·自动缩放
大空大地202614 小时前
流程控制语句--switch多分支语句使用、while循环语句的使用、do...while语句、for循环
c#
kylezhao201915 小时前
C#序列化与反序列化详细讲解与应用
c#
JQLvopkk15 小时前
C# 实践AI :Visual Studio + VSCode 组合方案
人工智能·c#·visual studio
故事不长丨16 小时前
C#线程同步:lock、Monitor、Mutex原理+用法+实战全解析
开发语言·算法·c#