C#中读写INI配置文件的方法

 更新时间:2018年07月08日 16:21:57   作者:郝光明  
这篇文章主要介绍了C#中读写INI配置文件的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

在作应用系统开发时,管理配置是必不可少的。例如数据库服务器的配置、安装和更新配置等等。由于Xml的兴起,现在的配置文件大都是以xml文档来存储。比如Visual Studio.Net自身的配置文件Mashine.config,Asp.Net的配置文件Web.Config,包括我在介绍Remoting中提到的配置文件,都是xml的格式。

传统的配置文件ini已有被xml文件逐步代替的趋势,但对于简单的配置,ini文件还是有用武之地的。ini文件其实就是一个文本文件,它有固定的格式,节Section的名字用[]括起来,然后换行说明key的值:

[section]
key=value

如数据库服务器配置文件:

DBServer.ini

[Server]
Name=localhost
[DB]
Name=NorthWind
[User]
Name=sa

在C#中,对配置文件的读写是通过API函数来完成的,代码很简单:

using System;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;
namespace PubOp
{
  public class OperateIniFile
  {
    #region API函数声明
    [DllImport("kernel32")]//返回0表示失败,非0为成功
    private static extern long WritePrivateProfileString(string section,string key,
      string val,string filePath);
    [DllImport("kernel32")]//返回取得字符串缓冲区的长度
    private static extern long GetPrivateProfileString(string section,string key,
      string def,StringBuilder retVal,int size,string filePath);
    #endregion
    #region 读Ini文件
    public static string ReadIniData(string Section,string Key,string NoText,string iniFilePath)
    {
      if(File.Exists(iniFilePath))
      {
        StringBuilder temp = new StringBuilder(1024);
        GetPrivateProfileString(Section,Key,NoText,temp,1024,iniFilePath);
        return temp.ToString();
      }
      else
      {
        return String.Empty;
      }
    }
    #endregion
    #region 写Ini文件
    public static bool WriteIniData(string Section,string Key,string Value,string iniFilePath)
    {
      if(File.Exists(iniFilePath))
      {
        long OpStation = WritePrivateProfileString(Section,Key,Value,iniFilePath);  
        if(OpStation == 0)
        {
          return false;
        }
        else
        {
          return true;
        }
      }
      else
      {
        return false;
      }
    }
    #endregion
  }
}

简单说明以下方法WriteIniData()和ReadIniData()的参数。

Section参数、Key参数和IniFilePath不用再说,Value参数表明key的值,而这里的NoText对应API函数的def参数,它的值由用户指定,是当在配置文件中没有找到具体的Value时,就用NoText的值来代替。

 NoText 可以为null或""

总结

以上所述是小编给大家介绍的C#中读写INI配置文件的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

  • C#简单聊天室雏形

    C#简单聊天室雏形

    这篇文章主要为大家详细介绍了C#简单聊天室雏形,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C# Redis学习系列(二)Redis基本设置

    C# Redis学习系列(二)Redis基本设置

    这篇文章主要为大家分享了C# Redis学习系列教程第二篇, Redis基本设置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • C#调用海康工业相机SDK采集图像并在Halcon窗口中显示方式

    C#调用海康工业相机SDK采集图像并在Halcon窗口中显示方式

    这篇文章主要介绍了C#调用海康工业相机SDK采集图像并在Halcon窗口中显示方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • C#实现对字符串进行大小写切换的方法

    C#实现对字符串进行大小写切换的方法

    这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • C#实现的简单验证码识别实例

    C#实现的简单验证码识别实例

    这篇文章主要介绍了C#实现的简单验证码识别实例,只适应一些简单的验证码,需要的朋友可以参考下
    2014-06-06
  • c# wpf使用GMap.NET类库,实现地图轨迹回放

    c# wpf使用GMap.NET类库,实现地图轨迹回放

    这篇文章主要介绍了c# wpf使用GMap.NET类库,实现地图轨迹回放的方法,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • 基于C#的抽象类别详解

    基于C#的抽象类别详解

    下面小编就为大家分享一篇基于C#的抽象类别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • C#滑动验证码拼图验证功能实现(SlideCaptcha)

    C#滑动验证码拼图验证功能实现(SlideCaptcha)

    目前网站上的验证码机制可谓是五花八门,有简单的数字验证,有掺杂了字母和文字的混淆验证,还有通过滑块进行的拼图验证,下面这篇文章主要给大家介绍了关于C#滑动验证码拼图验证功能的实现方法,需要的朋友可以参考下
    2022-04-04
  • c#中 String和string的区别介绍

    c#中 String和string的区别介绍

    String和string的区别有哪些,想有很多朋友都不知道吧,在本文将为大家详细介绍下,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-10-10
  • C#实现Stream与byte[]之间的转换实例教程

    C#实现Stream与byte[]之间的转换实例教程

    这篇文章主要介绍了C#实现Stream与byte[]之间的转换方法,具体讲解了二进制转换成图片、byte[]与string的转换、Stream 和 byte[] 之间的转换、Stream 和 文件之间的转换、从文件读取 Stream以及Bitmap 转化为 Byte[]等,需要的朋友可以参考下
    2014-09-09

最新评论