应用程序中常常用到ini格式的配置文件,对ini文件进行读写时常用到的功能,最近发现了原来库函数可以直接用来对ini文件进行读写,特别简单,调用方法如下:
/// <summary>
/// 写入INI文件
/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
/// <param name="val"></param>
/// <param name="filePath"></param>
/// <returns>返回0表示失败,非0为成功</returns>
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
/// <summary>
/// 字符串缓冲区的长度
/// </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);
使用方法如下
//读取ini特定section
public string ReadIniData(string Section, string Key)
{
if (File.Exists(this.iniFilePath))
{
StringBuilder temp = new StringBuilder(1024);
GetPrivateProfileString(Section, Key, string.Empty, temp, 1024, this.iniFilePath);
return temp.ToString();
}
else
{
return string.Empty;
}
}
//写入ini文件
public bool WriteClockIniData(string Section, string Key, string Value)
{
string dirPath = Path.GetDirectoryName(this.iniFilePathClock);
//如果不存在就创建file文件夹
if (!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
long OpStation = WritePrivateProfileString(Section, Key, Value, this.iniFilePathClock);
if (OpStation == 0)
{
return false;
}
else
{
return true;
}
}