using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CarLocalMeter { public class FileOption { static string dbFile = Path.Combine(AppConfigCache.path, "data/actualDb.data"); /// /// 计量数据写入本地文件 /// /// /// /// public static bool WriterDb(ActualFirstModel actualDb, out string msgInfo) { Log lg = Log.GetInstance(); try { //判断文件是否存在 if (!File.Exists(dbFile)) { //不存在则创建文件并直接写入数据 File.WriteAllText(dbFile, JsonConvert.SerializeObject(actualDb)); } else { List ls = new List(); ls.Add(JsonConvert.SerializeObject(actualDb)); File.AppendAllLines(dbFile, ls); } msgInfo = "计量完成"; return true; } catch (Exception ex) { lg.WriteLog(LogType.WriteDbLog, "写入信息失败:" + ex.Message); msgInfo = "写入数据失败:" + ex.Message; return false; } } /// /// 读取本地计量数据 /// /// /// /// public static List ReadDb(ref bool readFlag, ref string msgInfo) { Log lg = Log.GetInstance(); List list = new List(); try { if (File.Exists(dbFile)) { string[] strs = File.ReadAllLines(dbFile); foreach (string str in strs) { T first = JsonConvert.DeserializeObject(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; } /// /// 清理文件数据 /// 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); } } } }