[DllImport("kernel32.dll")] private static extern bool WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32.dll")] private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); private string sPath_ = ""; /// <summary> /// 绝对路径 /// </summary> public string sPath { get { return sPath_; } set { sPath_ = value; } } /// <summary> /// 向ini文件进行写入 /// </summary> /// <param name="section">文件域</param> /// <param name="key">key值</param> /// <param name="value">value值</param> /// <returns></returns> public bool WriteToIni(string section, string key, string value) { bool result = false; if (System.IO.File.Exists(sPath)) { result = WritePrivateProfileString(section, key, value, sPath); } return result; } /// <summary> /// 从ini文件进行读取 /// </summary> /// <param name="section">文件域</param> /// <param name="key">key值</param> /// <param name="defaultValue">默认值</param> /// <returns></returns> public string ReadFromIni(string section, string key, string defaultValue = "") { string result = defaultValue; if (System.IO.File.Exists(sPath)) { StringBuilder sTemp = new StringBuilder(1024); int i = GetPrivateProfileString(section, key, defaultValue, sTemp, 1024, sPath); result = sTemp.ToString(); } return result; }
强烈注意:
ini文件必须为ANSI、Unicode 格式,否则会出现异常,至于原因暂时没有找到。请大侠帮忙解释。