FileOption.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. //判断文件是否存在
  25. if (!File.Exists(dbFile))
  26. {
  27. //不存在则创建文件并直接写入数据
  28. File.WriteAllText(dbFile, JsonConvert.SerializeObject(actualDb));
  29. }
  30. else
  31. {
  32. List<string> ls = new List<string>();
  33. ls.Add(JsonConvert.SerializeObject(actualDb));
  34. File.AppendAllLines(dbFile, ls);
  35. }
  36. msgInfo = "计量完成";
  37. return true;
  38. }
  39. catch (Exception ex)
  40. {
  41. lg.WriteLog(LogType.WriteDbLog, "写入信息失败:" + ex.Message);
  42. msgInfo = "写入数据失败:" + ex.Message;
  43. return false;
  44. }
  45. }
  46. /// <summary>
  47. /// 读取本地计量数据
  48. /// </summary>
  49. /// <param name="readFlag"></param>
  50. /// <param name="msgInfo"></param>
  51. /// <returns></returns>
  52. public static List<MeterWorkCarActualFirst> ReadDb(ref bool readFlag, ref string msgInfo)
  53. {
  54. Log lg = Log.GetInstance();
  55. List<MeterWorkCarActualFirst> list = new List<MeterWorkCarActualFirst>();
  56. try
  57. {
  58. if (File.Exists(dbFile))
  59. {
  60. string[] strs = File.ReadAllLines(dbFile);
  61. foreach (string str in strs)
  62. {
  63. MeterWorkCarActualFirst first = JsonConvert.DeserializeObject<MeterWorkCarActualFirst>(str);
  64. list.Add(first);
  65. }
  66. }
  67. }
  68. catch (Exception ex)
  69. {
  70. lg.WriteLog(LogType.WriteDbLog, "写入信息失败:" + ex.Message);
  71. msgInfo = "读取失败:" + ex.Message;
  72. readFlag = false;
  73. }
  74. return list;
  75. }
  76. /// <summary>
  77. /// 清理文件数据
  78. /// </summary>
  79. public static void clearFile()
  80. {
  81. Log lg = Log.GetInstance();
  82. try
  83. {
  84. if (File.Exists(dbFile))
  85. {
  86. //不存在则创建文件并直接写入数据
  87. File.WriteAllText(dbFile, "");
  88. }
  89. } catch (Exception ex)
  90. {
  91. lg.WriteLog(LogType.WriteDbLog, "数据进行清理失败:" + ex.Message);
  92. }
  93. }
  94. }
  95. }