FileOption.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace CarLocalMeter
  9. {
  10. public class FileOption
  11. {
  12. static string dbFile = Path.Combine(AppConfigCache.path, "data/actualDb.data");
  13. /// <summary>
  14. /// 计量数据写入本地文件
  15. /// </summary>
  16. /// <param name="actualDb"></param>
  17. /// <param name="msgInfo"></param>
  18. /// <returns></returns>
  19. public static bool WriterDb(ActualFirstModel actualDb, out string msgInfo)
  20. {
  21. Log lg = Log.GetInstance();
  22. try
  23. {
  24. List<string> ls = new List<string>();
  25. ls.Add(JsonConvert.SerializeObject(actualDb));
  26. File.AppendAllLines(dbFile, ls);
  27. /*
  28. //判断文件是否存在
  29. if (!File.Exists(dbFile))
  30. {
  31. //不存在则创建文件并直接写入数据
  32. File.WriteAllText(dbFile, JsonConvert.SerializeObject(actualDb) + "\n");
  33. }
  34. else
  35. {
  36. List<string> ls = new List<string>();
  37. ls.Add(JsonConvert.SerializeObject(actualDb));
  38. File.AppendAllLines(dbFile, ls);
  39. }
  40. //*/
  41. msgInfo = "计量完成";
  42. return true;
  43. }
  44. catch (Exception ex)
  45. {
  46. lg.WriteLog(LogType.WriteDbLog, "写入信息失败:" + ex.Message);
  47. msgInfo = "写入数据失败:" + ex.Message;
  48. return false;
  49. }
  50. }
  51. /// <summary>
  52. /// 读取本地计量数据
  53. /// </summary>
  54. /// <param name="readFlag"></param>
  55. /// <param name="msgInfo"></param>
  56. /// <returns></returns>
  57. public static List<T> ReadDb<T>(ref bool readFlag, ref string msgInfo)
  58. {
  59. Log lg = Log.GetInstance();
  60. List<T> list = new List<T>();
  61. try
  62. {
  63. if (File.Exists(dbFile))
  64. {
  65. string[] strs = File.ReadAllLines(dbFile);
  66. foreach (string str in strs)
  67. {
  68. T first = JsonConvert.DeserializeObject<T>(str);
  69. list.Add(first);
  70. }
  71. if (list.Count > 0) readFlag = true;
  72. }
  73. }
  74. catch (Exception ex)
  75. {
  76. lg.WriteLog(LogType.WriteDbLog, "读取失败:" + ex.Message);
  77. msgInfo = "读取失败:" + ex.Message;
  78. readFlag = false;
  79. }
  80. return list;
  81. }
  82. /// <summary>
  83. /// 清理文件数据
  84. /// </summary>
  85. public static void clearFile()
  86. {
  87. Log lg = Log.GetInstance();
  88. try
  89. {
  90. if (File.Exists(dbFile))
  91. {
  92. //不存在则创建文件并直接写入数据
  93. File.WriteAllText(dbFile, "");
  94. }
  95. } catch (Exception ex)
  96. {
  97. lg.WriteLog(LogType.WriteDbLog, "数据进行清理失败:" + ex.Message);
  98. }
  99. }
  100. }
  101. }