新建一个类,附上代码如下:
在使用文件中,new一个对象即可:IniFiles ini = new IniFiles(Application.StartupPath + @"\MyConfig.ini");
tip:括号内为ini文件的地址路径,@为转义符号,不然会报错
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Runtime.InteropServices; namespace INI { class IniFiles { public string inipath; //声明API函数 [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); /// <summary> /// 构造方法 /// </summary> /// <param name="INIPath">文件路径</param> public IniFiles(string INIPath) { inipath = INIPath; } public IniFiles() { } /// <summary> /// 写入INI文件 /// </summary> /// <param name="Section">项目名称(如 [TypeName] )</param> /// <param name="Key">键</param> /// <param name="Value">值</param> public void IniWriteValue(string Section, string Key, string Value) { if (string.IsNullOrEmpty(Section)) { throw new ArgumentException("必须指定节点名称", "Section"); } if (string.IsNullOrEmpty(Key)) { throw new ArgumentException("必须指定键名称", "Key"); } if (Value == null) { throw new ArgumentException("值不能为null", "Value"); } WritePrivateProfileString(Section, Key, Value, this.inipath); } /// <summary> /// 读出INI文件 /// </summary> /// <param name="Section">项目名称(如 [TypeName] )</param> /// <param name="Key">键</param> public void IniReadValue(string Section, string Key,ref string Value) { StringBuilder temp = new StringBuilder(500); if (string.IsNullOrEmpty(Section)) { throw new ArgumentException("必须指定节点名称", "Section"); } if (string.IsNullOrEmpty(Key)) { throw new ArgumentException("必须指定键名称", "Key"); } int i = GetPrivateProfileString(Section, Key, "", temp, 500, this.inipath); if (i != 0) { Value = temp.ToString(); } temp = null; } /// <summary> /// 验证文件是否存在 /// </summary> /// <returns>布尔值</returns> public bool ExistINIFile() { return File.Exists(inipath); } } }