INI配置文件由若干个节(section)组成,每个节又分成若干个键(key)和值(value),在C#程序中我们可以通过引入非托管的Windows API函数来进行读写。
一、引入非托管的Windows API函数:
/// <summary> /// 读取INI配置信息 /// </summary> /// <param name="section">节</param> /// <param name="key">键</param> /// <param name="def">默认值</param> /// <param name="retVal">值缓冲区</param> /// <param name="size">大小</param> /// <param name="filePath">INI配置文件路径</param> /// <returns>返回取得字符串缓冲区的长度</returns> [DllImport("kernel32")] private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); /// <summary> /// 写入INI配置信息 /// </summary> /// <param name="section">节</param> /// <param name="key">键</param> /// <param name="val">值</param> /// <param name="filePath">INI配置文件路径</param> /// <returns>返回0表示失败,非0表示成功</returns> [DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
二、读取INI配置信息:
// 值缓冲区大小 int capacity = 1024; // 配置项所在节 string section = "Section"; // 配置项所在键 string key = "Key"; // 配置项默认值 string defaultValue = "Value"; // INI配置文件路径 string file = "C:/config.ini"; // 创建值缓冲区 StringBuilder stringBuilder = new StringBuilder(capacity); // 读取配置值 GetPrivateProfileString(section, key, defaultValue, stringBuilder, capacity, file); return stringBuilder.ToString();
三、写入INI配置信息:
// 配置项所在节 string section = "Section"; // 配置项所在键 string key = "Key"; // 配置项值 string value = "Value"; // INI配置文件路径 string file = "C:/config.ini"; // 写入配置信息 long result = WritePrivateProfileString(section, key, value, file); // 返回写入是否成功 return result != 0;
更多信息请参阅:配置 Ini 文件项目、WritePrivateProfileString function (Windows)、GetPrivateProfileString function (Windows)