IniHelper.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System.Collections.Generic;
  2. using System.Runtime.InteropServices;
  3. using System.Text;
  4. namespace WWPipeLine.Commons.SerializeHelper
  5. {
  6. public class IniHelper
  7. {
  8. private static readonly string DEFAULT_SECTION = "DEFAULT";
  9. private static readonly string LOOKAT_SECTION = "LOOKAT";
  10. public static readonly string KEY_LAST_WORKSPACE_PATH = "LastWorkSpacePath";
  11. private static readonly string KEY_DIRECTION_SYMBLEID = "DirectionSymbleID";
  12. private static string iniCfgPath
  13. {
  14. get
  15. {
  16. return Paths.ApplicationConfigDir + "/" + "default.ini";
  17. }
  18. }
  19. public static void WriteLookAt(string[] keys,object[] values)
  20. {
  21. for(var i = 0;i < keys.Length;i++)
  22. {
  23. WritePrivateProfileString(LOOKAT_SECTION, keys[i], values[i].ToString(), iniCfgPath);
  24. }
  25. }
  26. public static Dictionary<string,string> ReadLookAt(string[] keys)
  27. {
  28. var values = new Dictionary<string, string>();
  29. for (var i = 0;i < keys.Length; i++)
  30. {
  31. var val = new StringBuilder();
  32. GetPrivateProfileString(LOOKAT_SECTION, keys[i], string.Empty, val, 1024, iniCfgPath);
  33. values.Add(keys[i], val.ToString());
  34. }
  35. return values;
  36. }
  37. public static string Read(string key, string defaultVal = "")
  38. {
  39. var val = new StringBuilder();
  40. GetPrivateProfileString(DEFAULT_SECTION, key, defaultVal, val, 1024, iniCfgPath);
  41. return val.ToString();
  42. }
  43. public static string DirectionSymbleID
  44. {
  45. get
  46. {
  47. var val = new StringBuilder();
  48. GetPrivateProfileString(DEFAULT_SECTION, KEY_DIRECTION_SYMBLEID, "54420004", val, 1024, iniCfgPath);
  49. return val.ToString();
  50. }
  51. }
  52. public static void Write(string key, string val)
  53. {
  54. WritePrivateProfileString(DEFAULT_SECTION, key, val, iniCfgPath);
  55. }
  56. /// <summary>
  57. /// 写入INI文件
  58. /// </summary>
  59. /// <param name="section">节点名称[如[TypeName]]</param>
  60. /// <param name="key">键</param>
  61. /// <param name="val">值</param>
  62. /// <param name="filepath">文件路径</param>
  63. /// <returns></returns>
  64. [DllImport("kernel32")]
  65. public static extern bool WritePrivateProfileString(string section, string key, string val, string filepath);
  66. /// <summary>
  67. /// 读取INI文件
  68. /// </summary>
  69. /// <param name="section">节点名称</param>
  70. /// <param name="key">键</param>
  71. /// <param name="def">值</param>
  72. /// <param name="retval">stringbulider对象</param>
  73. /// <param name="size">字节大小</param>
  74. /// <param name="filePath">文件路径</param>
  75. /// <returns></returns>
  76. [DllImport("kernel32")]
  77. public static extern bool GetPrivateProfileString(string section, string key, string def, StringBuilder retval, int size, string filePath);
  78. }
  79. }