IniHelper.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System.Collections.Generic;
  2. using System.Runtime.InteropServices;
  3. using System.Text;
  4. namespace WWPipeLine.Commons
  5. {
  6. public class IniHelper
  7. {
  8. private static readonly string DEFAULT_SECTION = "DEFAULT";
  9. public static readonly string KEY_LAST_WORKSPACE_PATH = "LastWorkSpacePath";
  10. public static readonly string KEY_WorkspaceMapIndex_PATH = "WorkspaceMapIndex";
  11. public static readonly string KEY_WorkspaceDatasourceIndex_PATH = "WorkspaceDatasourceIndex";
  12. public static readonly string KEY_ConfigsMenus_PATH = "ConfigsMenusPath";
  13. public static readonly string KEY_ConfigsNpgsql_PATH = "ConfigsNpgsql";
  14. public static readonly string KEY_LoginUser_PATH = "LoginUser";
  15. public static readonly string KEY_LoginPass_PATH = "LoginPass";
  16. public static readonly string KEY_MapCenterX_PATH = "MapCenterX";
  17. public static readonly string KEY_MapCenterY_PATH = "MapCenterY";
  18. public static readonly string KEY_MapScale_PATH = "MapScale";
  19. private static string iniCfgPath
  20. {
  21. get
  22. {
  23. return Paths.ApplicationConfigDir + "/" + "default.ini";
  24. }
  25. }
  26. public static string Read(string key, string defaultVal = "")
  27. {
  28. var val = new StringBuilder();
  29. GetPrivateProfileString(DEFAULT_SECTION, key, defaultVal, val, 1024, iniCfgPath);
  30. return val.ToString();
  31. }
  32. public static void Write(string key, string val)
  33. {
  34. WritePrivateProfileString(DEFAULT_SECTION, key, val, iniCfgPath);
  35. }
  36. /// <summary>
  37. /// 写入INI文件
  38. /// </summary>
  39. /// <param name="section">节点名称[如[TypeName]]</param>
  40. /// <param name="key">键</param>
  41. /// <param name="val">值</param>
  42. /// <param name="filepath">文件路径</param>
  43. /// <returns></returns>
  44. [DllImport("kernel32")]
  45. public static extern bool WritePrivateProfileString(string section, string key, string val, string filepath);
  46. /// <summary>
  47. /// 读取INI文件
  48. /// </summary>
  49. /// <param name="section">节点名称</param>
  50. /// <param name="key">键</param>
  51. /// <param name="def">值</param>
  52. /// <param name="retval">stringbulider对象</param>
  53. /// <param name="size">字节大小</param>
  54. /// <param name="filePath">文件路径</param>
  55. /// <returns></returns>
  56. [DllImport("kernel32")]
  57. public static extern bool GetPrivateProfileString(string section, string key, string def, StringBuilder retval, int size, string filePath);
  58. }
  59. }