From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFileLogic.cs |  828 ++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 451 insertions(+), 377 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFileLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFileLogic.cs
old mode 100755
new mode 100644
index d79b5e2..bad19fa
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFileLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFileLogic.cs
@@ -1,377 +1,451 @@
-锘縰sing Newtonsoft.Json;
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace Shared.Phone.UserCenter
-{
-    /// <summary>
-    /// 鏂囦欢鎿嶄綔鐨勯�昏緫
-    /// </summary>
-    public class HdlFileLogic
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// 鏂囦欢鎿嶄綔鐨勯�昏緫
-        /// </summary>
-        private static HdlFileLogic m_Current = null;
-        /// <summary>
-        /// 鏂囦欢鎿嶄綔鐨勯�昏緫
-        /// </summary>
-        public static HdlFileLogic Current
-        {
-            get
-            {
-                if (m_Current == null)
-                {
-                    m_Current = new HdlFileLogic();
-                }
-                return m_Current;
-            }
-        }
-        #endregion
-
-        #region 鈻� 鏂囦欢淇濆瓨鍜岃鍙朹____________________
-
-        /// <summary>
-        /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
-        /// </summary>
-        /// <param name="fullName">鍏ㄨ矾寰�</param>
-        /// <param name="obj">闇�瑕佸簭鍒楀寲鐨勪笢瑗�</param>
-        public void SaveFileContent(string fullName, object obj)
-        {
-            var data = JsonConvert.SerializeObject(obj);
-            this.SaveTextToFile(fullName, data);
-        }
-
-        /// <summary>
-        /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
-        /// </summary>
-        /// <param name="fullName">鍏ㄨ矾寰�</param>
-        /// <param name="obj">闇�瑕佸簭鍒楀寲鐨勪笢瑗�</param>
-        public void SaveTextToFile(string fullName, string textValue)
-        {
-            var byteData = Encoding.UTF8.GetBytes(textValue);
-            //鍐欏叆鍐呭
-            System.IO.FileStream fileStream = null;
-            try
-            {
-                fileStream = new System.IO.FileStream(fullName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
-                fileStream.Write(byteData, 0, byteData.Length);
-                fileStream.Flush();
-            }
-            catch { }
-            finally
-            {
-                fileStream?.Close();
-            }
-        }
-
-        /// <summary>
-        /// 璇诲彇鏂囦欢,涓嶉檺鍒朵綇瀹�(鏂囦欢涓嶅瓨鍦ㄨ繑鍥瀗ull,鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
-        /// </summary>
-        /// <param name="fullName">鍏ㄨ矾寰�</param>
-        /// <returns></returns>
-        public string ReadFileTextContent(string fullName)
-        {
-            //璇诲彇鏂囦欢
-            var varByte = this.ReadFileByteContent(fullName);
-            if (varByte == null)
-            {
-                return null;
-            }
-            return Encoding.UTF8.GetString(varByte);
-        }
-
-        /// <summary>
-        /// 璇诲彇鏂囦欢,涓嶉檺鍒朵綇瀹�,鏂囦欢涓嶅瓨鍦ㄨ繑鍥瀗ull
-        /// </summary>
-        /// <param name="fullName">鍏ㄨ矾寰�</param>
-        /// <returns></returns>
-        public byte[] ReadFileByteContent(string fullName)
-        {
-            if (System.IO.File.Exists(fullName) == false)
-            {
-                return null;
-            }
-            System.IO.FileStream fileStream = null;
-            try
-            {
-                fileStream = new System.IO.FileStream(fullName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
-                byte[] array = new byte[fileStream.Length];
-                fileStream.Read(array, 0, array.Length);
-                return array;
-            }
-            catch
-            {
-                return null;
-            }
-            finally
-            {
-                fileStream?.Close();
-            }
-        }
-
-        #endregion
-
-        #region 鈻� 鏂囦欢澶规搷浣滃嚱鏁癬____________________
-
-        /// <summary>
-        /// 鍒涘缓涓�涓枃浠跺す
-        /// </summary>
-        /// <param name="fullDirectory">闇�瑕佸垱寤虹殑鏂囦欢澶瑰叏璺緞</param>
-        /// <param name="clear">濡傛灉鏂囦欢澶瑰瓨鍦紝鏄惁闇�瑕佹竻绌烘枃浠跺す</param>
-        public void CreateDirectory(string fullDirectory, bool clear = false)
-        {
-            if (System.IO.Directory.Exists(fullDirectory) == false)
-            {
-                try
-                {
-                    System.IO.Directory.CreateDirectory(fullDirectory);
-                }
-                catch (Exception ex)
-                {
-                    HdlLogLogic.Current.WriteLog(ex, "鍒涘缓鏂囦欢澶瑰け璐�:" + fullDirectory);
-                }
-            }
-            else if (clear == true)
-            {
-                //濡傛灉瀛樺湪锛屽垯娓呯┖鍏ㄩ儴鏂囦欢
-                var files = System.IO.Directory.GetFiles(fullDirectory);
-                foreach (var file in files)
-                {
-                    this.DeleteFile(file);
-                }
-            }
-        }
-
-        /// <summary>
-        /// 鍒犻櫎鏂囦欢澶�
-        /// </summary>
-        /// <param name="fullDirectory">鏂囦欢澶瑰叏璺緞</param>
-        public void DeleteDirectory(string fullDirectory)
-        {
-            if (System.IO.Directory.Exists(fullDirectory) == true)
-            {
-                try { System.IO.Directory.Delete(fullDirectory, true); }
-                catch (Exception ex)
-                {
-                    HdlLogLogic.Current.WriteLog(ex, "鍒犻櫎鏂囦欢澶瑰け璐�:" + fullDirectory);
-                }
-            }
-        }
-
-        /// <summary>
-        /// 鑾峰彇鎸囧畾鏂囦欢澶归噷闈㈢殑鍏ㄩ儴鏂囦欢 
-        /// </summary>
-        /// <param name="directory">鏂囦欢璺緞锛堝叏鍚嶏級</param>
-        /// <param name="onlyFileName">鍗曠函鍙槸鑾峰彇鏂囦欢鍚嶅瓧,濡傛灉涓篺alse鏃�,灏嗚繑鍥炴枃浠剁殑鍏ㄨ矾寰�</param>
-        /// <returns></returns>
-        public List<string> GetFileFromDirectory(string directory, bool onlyFileName = true)
-        {
-            if (System.IO.Directory.Exists(directory) == false)
-            {
-                return new List<string>();
-            }
-
-            List<string> list = new List<string>();
-            var files = System.IO.Directory.GetFiles(directory);
-            foreach (var file in files)
-            {
-                string fileName = file;
-                if (onlyFileName == true)
-                {
-                    fileName = fileName.Substring(directory.Length + 1);
-                }
-                list.Add(fileName);
-            }
-            return list;
-        }
-
-        /// <summary>
-        /// 灏嗘寚瀹氭枃浠跺す閲岄潰鐨勫叏閮ㄦ枃浠剁Щ鍔ㄥ埌褰撳墠浣忓畢鐨勬枃浠跺す鍐�
-        /// </summary>
-        /// <param name="fulldirectory">鏂囦欢澶瑰叏璺緞</param>
-        /// <param name="deleteDirectory">澶勭悊瀹屼箣鍚庯紝鏄惁鎶婃枃浠跺す鍒犻櫎</param>
-        public void MoveDirectoryFileToHomeDirectory(string fulldirectory, bool deleteDirectory = false)
-        {
-            if (System.IO.Directory.Exists(fulldirectory) == false)
-            {
-                return;
-            }
-
-            var files = System.IO.Directory.GetFiles(fulldirectory);
-            var listFile = new List<string>();
-            foreach (var file in files)
-            {
-                var f = file.Substring(fulldirectory.Length + 1);
-                listFile.Add(f);
-            }
-
-            var rootPath = Common.Config.Instance.FullPath;
-            foreach (var file in listFile)
-            {
-                string oldFile = System.IO.Path.Combine(fulldirectory, file);
-                string newFile = System.IO.Path.Combine(rootPath, file);
-                //绉诲姩鏂囦欢
-                this.MoveFileToDirectory(oldFile, newFile);
-            }
-            if (deleteDirectory == true)
-            {
-                //鍒犻櫎鏂囦欢澶�
-                this.DeleteDirectory(fulldirectory);
-            }
-        }
-
-        /// <summary>
-        /// 灏嗘寚瀹氭枃浠跺す閲岄潰鐨勫叏閮ㄦ枃浠跺鍒跺埌鎸囧畾鐨勬枃浠跺す鍐�
-        /// </summary>
-        /// <param name="fullDirectory">澶嶅埗鍘熸枃浠跺す鍏ㄨ矾寰�</param>
-        /// <param name="targetDirectory">鐩爣鏂囦欢澶瑰叏璺緞</param>
-        public void CopyDirectoryFileToDirectory(string fullDirectory, string targetDirectory)
-        {
-            if (System.IO.Directory.Exists(targetDirectory) == false)
-            {
-                //鍒涘缓鐩爣鏂囦欢澶�
-                this.CreateDirectory(targetDirectory, false);
-            }
-
-            var listFile = this.GetFileFromDirectory(fullDirectory);
-            foreach (var file in listFile)
-            {
-                string oldFile = System.IO.Path.Combine(fullDirectory, file);
-                string newFile = System.IO.Path.Combine(targetDirectory, file);
-                //澶嶅埗鏂囦欢
-                this.CopyFile(oldFile, newFile);
-            }
-        }
-
-        #endregion
-
-        #region 鈻� 鏂囦欢鎿嶄綔鍑芥暟_______________________
-
-        /// <summary>
-        /// 鍒犻櫎鏂囦欢
-        /// </summary>
-        /// <param name="fullName">鏂囦欢鍏ㄥ悕</param>
-        /// <returns></returns>
-        public bool DeleteFile(string fullName)
-        {
-            if (System.IO.File.Exists(fullName) == true)
-            {
-                try
-                {
-                    System.IO.File.Delete(fullName);
-                    return true;
-                }
-                catch { return false; }
-            }
-            return true;
-        }
-
-        /// <summary>
-        /// 绉诲姩鏂囦欢
-        /// </summary>
-        /// <param name="oldFile">鍘熸枃浠�</param>
-        /// <param name="newFile">鐩爣鏂囦欢</param>
-        public void MoveFileToDirectory(string oldFile, string newFile)
-        {
-            if (System.IO.File.Exists(oldFile) == true)
-            {
-                //濡傛灉鐩爣鏂囦欢瀛樺湪,鍒欏垏鎹负澶嶅埗鏂囦欢
-                if (System.IO.File.Exists(newFile) == true)
-                {
-                    this.CopyFile(oldFile, newFile);
-                }
-                try
-                {
-                    System.IO.File.Move(oldFile, newFile);
-                }
-                catch (Exception ex)
-                {
-                    HdlLogLogic.Current.WriteLog(ex, "绉诲姩澶辫触,鍘熸枃浠�:" + oldFile + "\r\n鐩爣鏂囦欢:" + newFile);
-                }
-            }
-        }
-
-        /// <summary>
-        /// 绉诲姩鏂囦欢
-        /// </summary>
-        /// <param name="oldFile">鍘熸枃浠�</param>
-        /// <param name="newFile">鐩爣鏂囦欢</param>
-        public void CopyFile(string oldFile, string newFile)
-        {
-            if (System.IO.File.Exists(oldFile) == true)
-            {
-                try
-                {
-                    System.IO.File.Copy(oldFile, newFile, true);
-                }
-                catch (Exception ex)
-                {
-                    HdlLogLogic.Current.WriteLog(ex, "澶嶅埗澶辫触,鍘熸枃浠�:" + oldFile + "\r\n鐩爣鏂囦欢:" + newFile);
-                }
-            }
-        }
-
-
-        #endregion
-
-        #region 鈻� 鍒犻櫎鏈湴鏂囦欢_______________________
-
-        /// <summary>
-        /// 鍒犻櫎鏈湴鎵�鏈夋枃浠�
-        /// </summary>
-        /// <param name="all">true:鍏ㄩ儴鍒犻櫎(鐢ㄤ簬浣忓畢鍒犻櫎) false:閲嶈鐨勬枃浠朵笉鍒犻櫎</param>
-        public void DeleteAllLocationFile(bool all = true)
-        {
-            string dPath = Common.Config.Instance.FullPath;
-            if (System.IO.Directory.Exists(dPath) == false)
-            {
-                return;
-            }
-
-            //鐒跺悗鑾峰彇鍏ㄩ儴鐨勬枃浠�
-            List<string> listFile = this.GetFileFromDirectory(dPath);
-            foreach (string file in listFile)
-            {
-                if (all == false && IsNotDeleteFile(file) == true)
-                {
-                    //杩欐槸涓嶈兘鍒犻櫎鐨勬枃浠�
-                    continue;
-                }
-                //鍒犻櫎鏂囦欢
-                this.DeleteFile(System.IO.Path.Combine(dPath, file));
-            }
-            //濡傛灉鏄妸鏂囦欢鍏ㄩ儴鍒犻櫎鐨勮瘽锛岄偅涔堟枃浠跺す涔熶竴璧峰垹闄ゆ帀
-            if (all == true)
-            {
-                //鍒犻櫎鏂囦欢澶�
-                System.IO.Directory.Delete(dPath, true);
-            }
-        }
-
-        /// <summary>
-        /// 鍒ゆ柇鏄笉鏄笉搴旇鍒犻櫎鐨勬枃浠�
-        /// </summary>
-        /// <param name="fileName"></param>
-        /// <returns></returns>
-        private bool IsNotDeleteFile(string fileName)
-        {
-            if (fileName == "Config.json")
-            {
-                //涓嶈兘鍒犻櫎Config鏂囦欢
-                return true;
-            }
-            else if (fileName.StartsWith("House_") == true)
-            {
-                //涓嶈兘鍒犻櫎浣忓畢鏂囦欢
-                return true;
-            }
-            return false;
-        }
-
-        #endregion
-    }
-}
+锘縰sing Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter
+{
+    /// <summary>
+    /// 鏂囦欢鎿嶄綔鐨勯�昏緫
+    /// </summary>
+    public class HdlFileLogic
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鏂囦欢鎿嶄綔鐨勯�昏緫
+        /// </summary>
+        private static HdlFileLogic m_Current = null;
+        /// <summary>
+        /// 鏂囦欢鎿嶄綔鐨勯�昏緫
+        /// </summary>
+        public static HdlFileLogic Current
+        {
+            get
+            {
+                if (m_Current == null)
+                {
+                    m_Current = new HdlFileLogic();
+                }
+                return m_Current;
+            }
+        }
+        #endregion
+
+        #region 鈻� 棰勫垱寤轰釜浜轰腑蹇冨叏閮ㄧ殑鏂囦欢澶筥________
+
+        /// <summary>
+        /// 棰勫垱寤轰釜浜轰腑蹇冨叏閮ㄧ殑鏂囦欢澶�
+        /// </summary>
+        public void CreatAllUserCenterDirectory()
+        {
+            //鏈湴缂撳瓨鐨勬牴鐩綍
+            this.CreateDirectory(DirNameResourse.LocalMemoryDirectory);
+
+            //鑷姩澶囦唤銆愭枃浠跺す銆�(缂栬緫,杩藉姞)
+            this.CreateDirectory(DirNameResourse.AutoBackupDirectory);
+
+            //鑷姩澶囦唤銆愭枃浠跺す銆�(鍒犻櫎)
+            this.CreateDirectory(DirNameResourse.AutoBackupdeleteDirectory);
+
+            //涓嬭浇澶囦唤鐨勬椂鍊欐墍浣跨敤鐨勪复鏃躲�愭枃浠跺す銆�
+            this.CreateDirectory(DirNameResourse.DownLoadBackupTempDirectory);
+
+            //淇濆瓨瀹夐槻璁板綍鐨勩�愭枃浠跺す銆�
+            this.CreateDirectory(DirNameResourse.SafeguardAlarmDirectory);
+
+            //涓嬭浇鍒嗕韩鏂囦欢鐨勪复鏃躲�愭枃浠跺す銆�
+            this.CreateDirectory(DirNameResourse.DownLoadShardDirectory);
+
+            //LOG鍑哄姏銆愭枃浠跺す銆�
+            this.CreateDirectory(DirNameResourse.LogDirectory);
+
+            //妯℃澘缂撳瓨瀛樻斁鐨勩�愭枃浠跺す銆�
+            this.CreateDirectory(DirNameResourse.LocalTemplateDirectory);
+            this.CreateDirectory(DirNameResourse.AllResidenceTemplateDirectory);
+
+            //鐢ㄦ埛鍥剧墖鐩綍璺緞銆愭枃浠跺す銆�
+            if (UserCenterResourse.AccountOption.UserPictruePath != string.Empty)
+            {
+                this.CreateDirectory(UserCenterResourse.AccountOption.UserPictruePath);
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鏂囦欢淇濆瓨鍜岃鍙朹____________________
+
+        /// <summary>
+        /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+        /// </summary>
+        /// <param name="fullName">鍏ㄨ矾寰�</param>
+        /// <param name="obj">闇�瑕佸簭鍒楀寲鐨勪笢瑗�</param>
+        public void SaveFileContent(string fullName, object obj)
+        {
+            var data = JsonConvert.SerializeObject(obj);
+            this.SaveTextToFile(fullName, data);
+        }
+
+        /// <summary>
+        /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+        /// </summary>
+        /// <param name="fullName">鍏ㄨ矾寰�</param>
+        /// <param name="textValue">鏂囨湰</param>
+        public void SaveTextToFile(string fullName, string textValue)
+        {
+            var byteData = Encoding.UTF8.GetBytes(textValue);
+            this.SaveByteToFile(fullName, byteData);
+        }
+
+        /// <summary>
+        /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+        /// </summary>
+        /// <param name="fullName">鍏ㄨ矾寰�</param>
+        /// <param name="byteData">byte鏁版嵁</param>
+        public void SaveByteToFile(string fullName, byte[] byteData)
+        {
+            if (byteData == null) { return; }
+            //鍐欏叆鍐呭
+            System.IO.FileStream fileStream = null;
+            try
+            {
+                fileStream = new System.IO.FileStream(fullName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
+                fileStream.Write(byteData, 0, byteData.Length);
+                fileStream.Flush();
+            }
+            catch { }
+            finally
+            {
+                fileStream?.Close();
+            }
+        }
+
+        /// <summary>
+        /// 璇诲彇鏂囦欢,涓嶉檺鍒朵綇瀹�(鏂囦欢涓嶅瓨鍦ㄨ繑鍥瀗ull,鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+        /// </summary>
+        /// <param name="fullName">鍏ㄨ矾寰�</param>
+        /// <returns></returns>
+        public string ReadFileTextContent(string fullName)
+        {
+            //璇诲彇鏂囦欢
+            var varByte = this.ReadFileByteContent(fullName);
+            if (varByte == null)
+            {
+                return null;
+            }
+            return Encoding.UTF8.GetString(varByte);
+        }
+
+        /// <summary>
+        /// 璇诲彇鏂囦欢,涓嶉檺鍒朵綇瀹�,鏂囦欢涓嶅瓨鍦ㄨ繑鍥瀗ull
+        /// </summary>
+        /// <param name="fullName">鍏ㄨ矾寰�</param>
+        /// <returns></returns>
+        public byte[] ReadFileByteContent(string fullName)
+        {
+            if (System.IO.File.Exists(fullName) == false)
+            {
+                return null;
+            }
+            System.IO.FileStream fileStream = null;
+            try
+            {
+                fileStream = new System.IO.FileStream(fullName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
+                byte[] array = new byte[fileStream.Length];
+                fileStream.Read(array, 0, array.Length);
+                return array;
+            }
+            catch
+            {
+                return null;
+            }
+            finally
+            {
+                fileStream?.Close();
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鏂囦欢澶规搷浣滃嚱鏁癬____________________
+
+        /// <summary>
+        /// 鍒涘缓涓�涓枃浠跺す
+        /// </summary>
+        /// <param name="fullDirectory">闇�瑕佸垱寤虹殑鏂囦欢澶瑰叏璺緞</param>
+        /// <param name="clear">濡傛灉鏂囦欢澶瑰瓨鍦紝鏄惁闇�瑕佹竻绌烘枃浠跺す</param>
+        public void CreateDirectory(string fullDirectory, bool clear = false)
+        {
+            if (System.IO.Directory.Exists(fullDirectory) == false)
+            {
+                try
+                {
+                    System.IO.Directory.CreateDirectory(fullDirectory);
+                }
+                catch (Exception ex)
+                {
+                    HdlLogLogic.Current.WriteLog(ex, "鍒涘缓鏂囦欢澶瑰け璐�:" + fullDirectory);
+                }
+            }
+            else if (clear == true)
+            {
+                //濡傛灉瀛樺湪锛屽垯娓呯┖鍏ㄩ儴鏂囦欢
+                var files = System.IO.Directory.GetFiles(fullDirectory);
+                foreach (var file in files)
+                {
+                    this.DeleteFile(file);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鍒犻櫎鏂囦欢澶�
+        /// </summary>
+        /// <param name="fullDirectory">鏂囦欢澶瑰叏璺緞</param>
+        public void DeleteDirectory(string fullDirectory)
+        {
+            if (System.IO.Directory.Exists(fullDirectory) == true)
+            {
+                try { System.IO.Directory.Delete(fullDirectory, true); }
+                catch (Exception ex)
+                {
+                    HdlLogLogic.Current.WriteLog(ex, "鍒犻櫎鏂囦欢澶瑰け璐�:" + fullDirectory);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎸囧畾鏂囦欢澶归噷闈㈢殑鍏ㄩ儴鏂囦欢 
+        /// </summary>
+        /// <param name="directory">鏂囦欢璺緞锛堝叏鍚嶏級</param>
+        /// <param name="onlyFileName">鍗曠函鍙槸鑾峰彇鏂囦欢鍚嶅瓧,濡傛灉涓篺alse鏃�,灏嗚繑鍥炴枃浠剁殑鍏ㄨ矾寰�</param>
+        /// <returns></returns>
+        public List<string> GetFileFromDirectory(string directory, bool onlyFileName = true)
+        {
+            if (System.IO.Directory.Exists(directory) == false)
+            {
+                return new List<string>();
+            }
+
+            var list = new List<string>();
+            try
+            {
+                //2020.07.10鐨勬椂鍊�,鍑虹幇杩囪幏鍙栧け璐ュ紓甯� 鎻愮ず:write fault on path
+                var files = System.IO.Directory.GetFiles(directory);
+                foreach (var file in files)
+                {
+                    string fileName = file;
+                    if (onlyFileName == true)
+                    {
+                        fileName = fileName.Substring(directory.Length + 1);
+                    }
+                    list.Add(fileName);
+                }
+            }
+            catch (Exception ex)
+            { HdlLogLogic.Current.WriteLog(ex); }
+
+            return list;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏍圭洰褰曠殑鍏ㄩ儴鏂囦欢鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public List<string> GetRootPathListFile()
+        {
+            return this.GetFileFromDirectory(Common.Config.Instance.FullPath);
+        }
+
+        /// <summary>
+        /// 灏嗘寚瀹氭枃浠跺す閲岄潰鐨勫叏閮ㄦ枃浠剁Щ鍔ㄥ埌褰撳墠浣忓畢鐨勬枃浠跺す鍐�
+        /// </summary>
+        /// <param name="fulldirectory">鏂囦欢澶瑰叏璺緞</param>
+        /// <param name="deleteDirectory">澶勭悊瀹屼箣鍚庯紝鏄惁鎶婃枃浠跺す鍒犻櫎</param>
+        public void MoveDirectoryFileToHomeDirectory(string fulldirectory, bool deleteDirectory = false)
+        {
+            if (System.IO.Directory.Exists(fulldirectory) == false)
+            {
+                return;
+            }
+
+            var files = System.IO.Directory.GetFiles(fulldirectory);
+            var listFile = new List<string>();
+            foreach (var file in files)
+            {
+                var f = file.Substring(fulldirectory.Length + 1);
+                listFile.Add(f);
+            }
+
+            var rootPath = Common.Config.Instance.FullPath;
+            foreach (var file in listFile)
+            {
+                if (file.StartsWith("ModelData_") == true)
+                {
+                    //澶嶅埗妯℃澘鏁版嵁鏂囦欢鍒版寚瀹氭枃浠跺す
+                    TemplateData.TemplateCommonLogic.Current.CopyTemplateFileToLocalDirectory2(System.IO.Path.Combine(fulldirectory, file));
+                    continue;
+                }
+                string oldFile = System.IO.Path.Combine(fulldirectory, file);
+                string newFile = System.IO.Path.Combine(rootPath, file);
+                //绉诲姩鏂囦欢
+                this.MoveFileToDirectory(oldFile, newFile);
+            }
+            if (deleteDirectory == true)
+            {
+                //鍒犻櫎鏂囦欢澶�
+                this.DeleteDirectory(fulldirectory);
+            }
+        }
+
+        /// <summary>
+        /// 灏嗘寚瀹氭枃浠跺す閲岄潰鐨勫叏閮ㄦ枃浠跺鍒跺埌鎸囧畾鐨勬枃浠跺す鍐�
+        /// </summary>
+        /// <param name="fullDirectory">澶嶅埗鍘熸枃浠跺す鍏ㄨ矾寰�</param>
+        /// <param name="targetDirectory">鐩爣鏂囦欢澶瑰叏璺緞</param>
+        public void CopyDirectoryFileToDirectory(string fullDirectory, string targetDirectory)
+        {
+            if (System.IO.Directory.Exists(targetDirectory) == false)
+            {
+                //鍒涘缓鐩爣鏂囦欢澶�
+                this.CreateDirectory(targetDirectory, false);
+            }
+
+            var listFile = this.GetFileFromDirectory(fullDirectory);
+            foreach (var file in listFile)
+            {
+                string oldFile = System.IO.Path.Combine(fullDirectory, file);
+                string newFile = System.IO.Path.Combine(targetDirectory, file);
+                //澶嶅埗鏂囦欢
+                this.CopyFile(oldFile, newFile);
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鏂囦欢鎿嶄綔鍑芥暟_______________________
+
+        /// <summary>
+        /// 鍒犻櫎鏂囦欢
+        /// </summary>
+        /// <param name="fullName">鏂囦欢鍏ㄥ悕</param>
+        /// <returns></returns>
+        public bool DeleteFile(string fullName)
+        {
+            if (System.IO.File.Exists(fullName) == true)
+            {
+                try
+                {
+                    System.IO.File.Delete(fullName);
+                    return true;
+                }
+                catch { return false; }
+            }
+            return true;
+        }
+
+        /// <summary>
+        /// 绉诲姩鏂囦欢
+        /// </summary>
+        /// <param name="oldFile">鍘熸枃浠�</param>
+        /// <param name="newFile">鐩爣鏂囦欢</param>
+        public void MoveFileToDirectory(string oldFile, string newFile)
+        {
+            if (System.IO.File.Exists(oldFile) == true)
+            {
+                //濡傛灉鐩爣鏂囦欢瀛樺湪,鍒欏垏鎹负澶嶅埗鏂囦欢
+                if (System.IO.File.Exists(newFile) == true)
+                {
+                    this.CopyFile(oldFile, newFile);
+                }
+                try
+                {
+                    System.IO.File.Move(oldFile, newFile);
+                }
+                catch (Exception ex)
+                {
+                    HdlLogLogic.Current.WriteLog(ex, "绉诲姩澶辫触,鍘熸枃浠�:" + oldFile + "\r\n鐩爣鏂囦欢:" + newFile);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 绉诲姩鏂囦欢
+        /// </summary>
+        /// <param name="oldFile">鍘熸枃浠�</param>
+        /// <param name="newFile">鐩爣鏂囦欢</param>
+        public void CopyFile(string oldFile, string newFile)
+        {
+            if (System.IO.File.Exists(oldFile) == true)
+            {
+                try
+                {
+                    System.IO.File.Copy(oldFile, newFile, true);
+                }
+                catch (Exception ex)
+                {
+                    HdlLogLogic.Current.WriteLog(ex, "澶嶅埗澶辫触,鍘熸枃浠�:" + oldFile + "\r\n鐩爣鏂囦欢:" + newFile);
+                }
+            }
+        }
+
+
+        #endregion
+
+        #region 鈻� 鍒犻櫎鏈湴鏂囦欢_______________________
+
+        /// <summary>
+        /// 鍒犻櫎鏈湴鎵�鏈夋枃浠�
+        /// </summary>
+        /// <param name="all">true:鍏ㄩ儴鍒犻櫎(鐢ㄤ簬浣忓畢鍒犻櫎) false:閲嶈鐨勬枃浠朵笉鍒犻櫎</param>
+        public void DeleteAllLocationFile(bool all = true)
+        {
+            string dPath = Common.Config.Instance.FullPath;
+            if (System.IO.Directory.Exists(dPath) == false)
+            {
+                return;
+            }
+
+            //鐒跺悗鑾峰彇鍏ㄩ儴鐨勬枃浠�
+            List<string> listFile = this.GetFileFromDirectory(dPath);
+            foreach (string file in listFile)
+            {
+                if (all == false && IsNotDeleteFile(file) == true)
+                {
+                    //杩欐槸涓嶈兘鍒犻櫎鐨勬枃浠�
+                    continue;
+                }
+                //鍒犻櫎鏂囦欢
+                this.DeleteFile(System.IO.Path.Combine(dPath, file));
+            }
+            //濡傛灉鏄妸鏂囦欢鍏ㄩ儴鍒犻櫎鐨勮瘽锛岄偅涔堟枃浠跺す涔熶竴璧峰垹闄ゆ帀
+            if (all == true)
+            {
+                //鍒犻櫎鏂囦欢澶�
+                System.IO.Directory.Delete(dPath, true);
+            }
+        }
+
+        /// <summary>
+        /// 鍒ゆ柇鏄笉鏄笉搴旇鍒犻櫎鐨勬枃浠�
+        /// </summary>
+        /// <param name="fileName"></param>
+        /// <returns></returns>
+        private bool IsNotDeleteFile(string fileName)
+        {
+            if (fileName == "Config.json")
+            {
+                //涓嶈兘鍒犻櫎Config鏂囦欢
+                return true;
+            }
+            else if (fileName.StartsWith("House_") == true)
+            {
+                //涓嶈兘鍒犻櫎浣忓畢鏂囦欢
+                return true;
+            }
+            return false;
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0