From 5a5a2b696866f947b6025d26c3302e8ffef46435 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期一, 11 一月 2021 16:11:20 +0800 Subject: [PATCH] 2021-01-11 1.更新MQTT连接和本地搜索网关方法。2.子账号相关接口完善 --- Crabtree/SmartHome/IO/FileUtils.cs | 73 +++++++++++++++++++++++++----------- 1 files changed, 51 insertions(+), 22 deletions(-) diff --git a/Crabtree/SmartHome/IO/FileUtils.cs b/Crabtree/SmartHome/IO/FileUtils.cs old mode 100755 new mode 100644 index f8b83f6..b0c1f85 --- a/Crabtree/SmartHome/IO/FileUtils.cs +++ b/Crabtree/SmartHome/IO/FileUtils.cs @@ -1,6 +1,7 @@ 锘縰sing System; using System.IO; using System.Collections.Generic; +using System.Threading; namespace Shared.IO { @@ -29,7 +30,7 @@ { foreach (var fileName in ReadRegionFiles (path)) { System.IO.File.Delete (System.IO.Path.Combine (path, fileName)); - Console.WriteLine ("Del region file :" + fileName); + Utlis.WriteLine ("Del region file :" + fileName); } } @@ -60,7 +61,7 @@ System.IO.FileInfo fileInfo = new System.IO.FileInfo (regionRootPath + NextFile.Name); if (fileInfo.Exists) { fileInfo.MoveTo (Application.RootPath + NextFile.Name); - Console.WriteLine ("Restroe : "+ NextFile.Name); + Utlis.WriteLine ("Restroe : "+ NextFile.Name); } Application.RunOnMainThread (() => { int pro = (int)(index * 1.0 / folderCount * 50) + 50; @@ -111,7 +112,7 @@ #if DEBUG DirectoryInfo root = new DirectoryInfo (RootPath); foreach (DirectoryInfo d in root.GetDirectories ()) { - Console.WriteLine ("鏂囦欢澶癸細" + d.Name); + Utlis.WriteLine ("鏂囦欢澶癸細" + d.Name); } #endif if (System.IO.Directory.Exists (srcPath)) { @@ -132,14 +133,14 @@ List<string> listFiles = new List<string> (); DirectoryInfo TheFolder = new DirectoryInfo (path); foreach (FileInfo NextFile in TheFolder.GetFiles ()) { - Console.WriteLine (NextFile.Name); + Utlis.WriteLine (NextFile.Name); } #endif } #if DEBUG foreach (DirectoryInfo d in root.GetDirectories ()) { - Console.WriteLine ("鏂囦欢澶癸細" + d.Name); + Utlis.WriteLine ("鏂囦欢澶癸細" + d.Name); } #endif } @@ -150,7 +151,7 @@ /// <param name="filePath">File path.</param> public static bool Exists (string filePath) { - //System.Console.WriteLine ("Exists==" + System.IO.Path.Combine (RootPath, filePath)); + //Utlis.WriteLine ("Exists==" + System.IO.Path.Combine (RootPath, filePath)); return System.IO.File.Exists (System.IO.Path.Combine (RootPath, filePath)); } @@ -160,11 +161,11 @@ /// <param name="fileName">File name.</param> public static void DeleteFile (string fileName) { - if (fileName == null || fileName == "Language.ini" || fileName == "AccountListDB") { + if (fileName == null || fileName == "Language.ini" || fileName == "AccountListDB" || fileName == "CommonConfig") { return; } System.IO.File.Delete (System.IO.Path.Combine (RootPath, fileName)); - Console.WriteLine ("鍒犻櫎鏂囦欢鍚嶄负锛�" + fileName); + Utlis.WriteLine ("鍒犻櫎鏂囦欢鍚嶄负锛�" + fileName); //if (UserConfig.Instance.LocalFiles.Contains (fileName)) { // UserConfig.Instance.LocalFiles.Remove (fileName); //} @@ -181,6 +182,23 @@ DeleteFile (f); } } + + /// <summary> + /// 鍒犻櫎鎵�鏈夊洖璺澶囨暟鎹� + /// </summary> + public static void DeleteAllCommon () { + //鎵惧嚭闇�瑕佹樉绀虹殑璁惧 + var filesList = ReadFiles ().FindAll ((obj) => { + string [] str = obj.Split ('_'); + return obj.StartsWith ("Equipment_") && str.Length == 5; + }); + + for (int j = 0; j < filesList.Count; j++) { + var f = filesList [j]; + DeleteFile (f); + } + + } /// <summary> /// Reads the equipment message. @@ -221,17 +239,23 @@ fileName += "_" + (loopID.Length < 2 ? "0" + loopID : loopID); } common.SavePath = fileName; - Console.WriteLine (fileName); + Utlis.WriteLine (fileName); WriteFileByBytes (fileName, SimpleControl.CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (common))); } - /// <summary> - /// Writes the file by bytes. - /// </summary> - /// <returns><c>true</c>, if file by bytes was writed, <c>false</c> otherwise.</returns> - /// <param name="fileName">File name.</param> - /// <param name="bytes">Bytes.</param> - public static bool WriteFileByBytes (string fileName, byte [] bytes) + /// <summary> + /// 澧炲姞 璇诲啓閿侊紝褰撹祫婧愬浜庡啓鍏ユā寮忔椂锛屽叾浠栫嚎绋嬪啓鍏ラ渶瑕佺瓑寰呮湰娆″啓鍏ョ粨鏉熶箣鍚庢墠鑳界户缁啓鍏� + /// 鐢ㄤ簬瑙e喅澶氱嚎绋嬬幆澧冨啓鍏ユ枃浠堕棶棰� + /// </summary> + static ReaderWriterLockSlim LogWriteLock = new ReaderWriterLockSlim (); + + /// <summary> + /// Writes the file by bytes. + /// </summary> + /// <returns><c>true</c>, if file by bytes was writed, <c>false</c> otherwise.</returns> + /// <param name="fileName">File name.</param> + /// <param name="bytes">Bytes.</param> + public static bool WriteFileByBytes (string fileName, byte [] bytes) { if (fileName == null || (fileName = fileName.Trim ()) == ("")) { return false; @@ -240,24 +264,29 @@ System.IO.FileStream fs = null; try { - fs = new FileStream (System.IO.Path.Combine (RootPath, fileName), FileMode.Create, FileAccess.Write); + //璁剧疆璇诲啓閿佷负鍐欏叆妯″紡鐙崰璧勬簮锛屽叾浠栧啓鍏ヨ姹傞渶瑕佺瓑寰呮湰娆″啓鍏ョ粨鏉熶箣鍚庢墠鑳界户缁啓鍏� + LogWriteLock.EnterWriteLock (); + + fs = new FileStream (System.IO.Path.Combine (RootPath, fileName), FileMode.Create, FileAccess.Write); fs.Write (bytes, 0, bytes.Length); fs.Flush (); - Console.WriteLine ("SaveFile:" + fileName); + //Utlis.WriteLine ("SaveFile:" + fileName + " : " + bytes.Length.ToString()); //if (!UserConfig.Instance.LocalFiles.Contains (fileName)) { // UserConfig.Instance.LocalFiles.Add (fileName); //} return true; } catch (Exception ex) { - Console.WriteLine ("FileUtiles Code 113:" + ex.ToString ()); + Utlis.WriteLine ("FileUtiles Code 113:" + ex.ToString ()); return false; } finally { - try { - if (fs != null) { + try { + //閫�鍑哄啓鍏ユā寮忥紝閲婃斁璧勬簮鍗犵敤 + LogWriteLock.ExitWriteLock (); + if (fs != null) { fs.Close (); } } catch (Exception ex) { - Console.WriteLine ("FileUtils Code 121 :" + ex.ToString ()); + Utlis.WriteLine ("FileUtils Code 121 :" + ex.ToString ()); } } } -- Gitblit v1.8.0