IniHelper.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System.Runtime.InteropServices;
  2. using System.Text;
  3. namespace SiteCore
  4. {
  5. public static class IniHelper
  6. {
  7. [DllImport("kernel32")]
  8. private static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
  9. [DllImport("kernel32")]
  10. private static extern int WritePrivateProfileString(string lpApplicationName, string lpKeyName, string lpString, string lpFileName);
  11. public static string FilePath = System.AppDomain.CurrentDomain.BaseDirectory + "Config.ini";
  12. /// <summary>
  13. /// 读取INI文件值
  14. /// </summary>
  15. /// <param name="section">节点名</param>
  16. /// <param name="key">键</param>
  17. /// <param name="def">未取到值时返回的默认值</param>
  18. /// <param name="filePath">INI文件完整路径</param>
  19. /// <returns>读取的值</returns>
  20. public static string Read(string section, string key, string def)
  21. {
  22. StringBuilder sb = new StringBuilder(1024);
  23. GetPrivateProfileString(section, key, def, sb, 1024, FilePath);
  24. return sb.ToString();
  25. }
  26. /// <summary>
  27. /// 写INI文件值
  28. /// </summary>
  29. /// <param name="section">欲在其中写入的节点名称</param>
  30. /// <param name="key">欲设置的项名</param>
  31. /// <param name="value">要写入的新字符串</param>
  32. /// <param name="filePath">INI文件完整路径</param>
  33. /// <returns>非零表示成功,零表示失败</returns>
  34. public static int Write(string section, string key, string value)
  35. {
  36. return WritePrivateProfileString(section, key, value, FilePath);
  37. }
  38. /// <summary>
  39. /// 删除节
  40. /// </summary>
  41. /// <param name="section">节点名</param>
  42. /// <param name="filePath">INI文件完整路径</param>
  43. /// <returns>非零表示成功,零表示失败</returns>
  44. public static int DeleteSection(string section)
  45. {
  46. return Write(section, null, null);
  47. }
  48. /// <summary>
  49. /// 删除键的值
  50. /// </summary>
  51. /// <param name="section">节点名</param>
  52. /// <param name="key">键名</param>
  53. /// <param name="filePath">INI文件完整路径</param>
  54. /// <returns>非零表示成功,零表示失败</returns>
  55. public static int DeleteKey(string section, string key)
  56. {
  57. return Write(section, key, null);
  58. }
  59. }
  60. }