作者一直认为ini文件就是一个文本文件,并且C#中没有提供直接操作它的类,原本以为要操作.ini文件需要当成文本文件用System.IO类来读写,通过百度搜索查阅,发现可以用Windows api 中的kernel32.dll下的WritePrivateProfileString()和GetPrivateProfileString()来写入和读取,遂写下这篇文章记录用法。
首先是导入dll,申明函数
[DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32")] private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
参数说明:section:INI文件中的段落;key:INI文件中的关键字;val:INI文件中关键字的数值;filePath:INI文件的完整的路径和名称。
参数说明:section:INI文件中的段落名称;key:INI文件中的关键字;def:无法读取时候时候的缺省数值;retVal:读取数值;size:数值的大小;filePath:INI文件的完整路径和名称。
然后是写入配置:
WritePrivateProfileString("Format", "subject_font_style", comboBoxEx1.SelectedIndex.ToString(), path);
最后是读取配置:
StringBuilder temp = new StringBuilder(500); GetPrivateProfileString("Format", "subject_font_style", "0", temp, 500, settingsPath); string s = temp.ToString();