FileOption.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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 RailLocalMeter
  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<T> ReadDb<T>(ref bool readFlag, ref string msgInfo)
  53. {
  54. Log lg = Log.GetInstance();
  55. List<T> list = new List<T>();
  56. try
  57. {
  58. if (File.Exists(dbFile))
  59. {
  60. string[] strs = File.ReadAllLines(dbFile);
  61. foreach (string str in strs)
  62. {
  63. T first = JsonConvert.DeserializeObject<T>(str);
  64. list.Add(first);
  65. }
  66. if (list.Count > 0) readFlag = true;
  67. }
  68. }
  69. catch (Exception ex)
  70. {
  71. lg.WriteLog(LogType.WriteDbLog, "写入信息失败:" + ex.Message);
  72. msgInfo = "读取失败:" + ex.Message;
  73. readFlag = false;
  74. }
  75. return list;
  76. }
  77. /// <summary>
  78. /// 清理文件数据
  79. /// </summary>
  80. public static void clearFile()
  81. {
  82. Log lg = Log.GetInstance();
  83. try
  84. {
  85. if (File.Exists(dbFile))
  86. {
  87. //不存在则创建文件并直接写入数据
  88. File.WriteAllText(dbFile, "");
  89. }
  90. } catch (Exception ex)
  91. {
  92. lg.WriteLog(LogType.WriteDbLog, "数据进行清理失败:" + ex.Message);
  93. }
  94. }
  95. }
  96. }