首页 / C# / C# INI配置文件读写类
C# INI配置文件读写类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# INI配置文件读写类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3924字,纯文字阅读大概需要6分钟。
内容图文
ini是一种很古老的配置文件,C#操作ini文件借助windows底层ini操作函数,使用起来很方便;
public class IniHelper { [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); [DllImport("kernel32", EntryPoint = "GetPrivateProfileString")] private static extern uint GetPrivateProfileStringA(string section, string key, string def, byte[] retVal, int size, string filePath); private string FilePath = ""; private string Section = ""; private Dictionary<string, string> List = new Dictionary<string, string>(); /// <summary> /// INI工具类 /// </summary> /// <param name="_filePath"></param> /// <param name="_section"></param> public IniHelper(string _filePath = "config.ini", string _section = "default") { if (_filePath.Contains("\\")) { FilePath = _filePath; } else { FilePath = Application.StartupPath + "\\" + _filePath; } Section = _section; Reload(); } /// <summary> /// 重新加载 /// </summary> public void Reload() { this.List = new Dictionary<string, string>(); List<string> keyList = _getKeyList(); foreach (var key in keyList) { this.List.Add(key, Get(key)); } } /// <summary> /// 获取key列表 /// </summary> /// <returns></returns> public string[] GetKeyList() { return this.List.Keys.ToArray(); } /// <summary> /// 获取所有KEY /// </summary> /// <returns></returns> private List<string> _getKeyList() { List<string> result = new List<string>(); byte[] buf = new byte[65536]; uint len = GetPrivateProfileStringA(Section, null, null, buf, buf.Length, FilePath); int j = 0; for (int i = 0; i < len; i++) if (buf[i] == 0) { result.Add(Encoding.Default.GetString(buf, j, i - j)); j = i + 1; } return result; } /// <summary> /// 获取值 /// </summary> /// <param name="key"></param> /// <param name="defaultVal"></param> /// <returns></returns> public string Get(string key, string defaultVal = "") { if (this.List.ContainsKey(key)) { return this.List[key]; } StringBuilder s = new StringBuilder(1024); GetPrivateProfileString(Section, key, defaultVal, s, 1024, FilePath); return s.ToString(); } /// <summary> /// 设置值 /// </summary> /// <param name="key"></param> /// <param name="val"></param> public void Set(string key, string val) { this.List[key] = val; WritePrivateProfileString(Section, key, val, FilePath); } /// <summary> /// 删除key /// </summary> /// <param name="key"></param> public void Del(string key) { this.List.Remove(key); WritePrivateProfileString(Section, key, null, FilePath); } /// <summary> /// 获取int /// </summary> /// <param name="key"></param> /// <param name="defaultVal"></param> /// <returns></returns> public int GetInt(string key, int defaultVal = 0) { string str = Get(key, defaultVal.ToString()); int val = defaultVal; bool bo = int.TryParse(str, out val); return bo ? val : defaultVal; } /// <summary> /// 获取float /// </summary> /// <param name="key"></param> /// <param name="defaultVal"></param> /// <returns></returns> public float GetFloat(string key, float defaultVal = 0) { string str = Get(key, defaultVal.ToString()); float val = defaultVal; bool bo = float.TryParse(str, out val); return bo ? val : defaultVal; } /// <summary> /// 获取bool /// </summary> /// <param name="key"></param> /// <param name="defaultVal"></param> /// <returns></returns> public bool GetBool(string key, bool defaultVal = false) { string str = Get(key, defaultVal ? "1" : "0"); return str == "1"; } /// <summary> /// 设置int /// </summary> /// <param name="key"></param> /// <param name="val"></param> public void SetInt(string key, int val) { Set(key, val.ToString()); } /// <summary> /// 设置float /// </summary> /// <param name="key"></param> /// <param name="val"></param> public void SetFloat(string key, float val) { Set(key, val.ToString()); } /// <summary> /// 设置bool /// </summary> /// <param name="key"></param> /// <param name="bo"></param> public void SetBool(string key, bool bo) { Set(key, bo ? "1" : "0"); } }
内容总结
以上是互联网集市为您收集整理的C# INI配置文件读写类全部内容,希望文章能够帮你解决C# INI配置文件读写类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。