| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace RailLocalMeter
- {
- public class FileOption
- {
- static string dbFile = $"{AppConfigCache.path}/data/";
- /// <summary>
- /// 计量数据写入本地文件
- /// </summary>
- /// <param name="actualDb"></param>
- /// <param name="msgInfo"></param>
- /// <returns></returns>
- public static bool WriterDb<T>(T actualDb, FileTypeEnum fileType, out string msgInfo)
- {
- Log lg = Log.GetInstance();
- try
- {
- string sPath = dbFile + (fileType == FileTypeEnum.一次数据 ? "FristDb.data" : "actualDb.data");
- //判断文件是否存在
- if (!File.Exists(sPath))
- {
- //不存在则创建文件并直接写入数据
- File.WriteAllText(sPath, JsonConvert.SerializeObject(actualDb, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }));
- }
- else
- {
- List<string> ls = new List<string>();
- ls.Add(JsonConvert.SerializeObject(actualDb));
- File.AppendAllLines(sPath, ls);
- }
- msgInfo = "计量完成";
- return true;
- }
- catch (Exception ex)
- {
- lg.WriteLog(LogType.WriteDbLog, "写入信息失败:" + ex.Message);
- msgInfo = "写入数据失败:" + ex.Message;
- return false;
- }
- }
- /// <summary>
- /// 读取本地计量数据
- /// </summary>
- /// <param name="readFlag"></param>
- /// <param name="msgInfo"></param>
- /// <returns></returns>
- public static List<T> ReadDb<T>(FileTypeEnum fileType, ref bool readFlag, ref string msgInfo)
- {
- Log lg = Log.GetInstance();
- List<T> list = new List<T>();
- try
- {
- string sPath = dbFile + (fileType == FileTypeEnum.一次数据 ? "FristDb.data" : "actualDb.data");
- if (File.Exists(dbFile))
- {
- string[] strs = File.ReadAllLines(sPath);
- foreach (string str in strs)
- {
- T first = JsonConvert.DeserializeObject<T>(str);
- list.Add(first);
- }
- if (list.Count > 0) readFlag = true;
- }
- }
- catch (Exception ex)
- {
- lg.WriteLog(LogType.WriteDbLog, "读取失败:" + ex.Message);
- msgInfo = "读取失败:" + ex.Message;
- readFlag = false;
- }
- return list;
- }
- /// <summary>
- /// 清理文件数据
- /// </summary>
- public static void clearFile()
- {
- Log lg = Log.GetInstance();
- try
- {
- if (File.Exists(dbFile))
- {
- //不存在则创建文件并直接写入数据
- File.WriteAllText(dbFile, "");
- }
- } catch (Exception ex)
- {
- lg.WriteLog(LogType.WriteDbLog, "数据进行清理失败:" + ex.Message);
- }
- }
- }
- public enum FileTypeEnum
- {
- 一次数据,
- 结净数据,
- }
- }
|