From d0249ac5f08875c3cd36ea86a600b866ec951eeb Mon Sep 17 00:00:00 2001 From: gaoxin Date: Fri, 23 Jul 2021 17:45:35 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=89=93=E5=8C=85=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E3=80=91=E4=BC=98=E5=8C=96Android=E5=87=BA=E5=8C=85=E6=97=B6?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E6=96=87=E4=BB=B6=E5=A4=B9=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E9=83=A8=E5=88=86.so=E6=96=87=E4=BB=B6=E8=A2=AB=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Editor/AutoPack.cs | 21 ++++++++--- Assets/Scripts/Core/Core/Utils/FileUtils.cs | 35 +++++++++++++++++-- .../Editor/GameEditor/FrameTool/FrameTool.cs | 2 +- 3 files changed, 50 insertions(+), 8 deletions(-) diff --git a/Assets/Editor/AutoPack.cs b/Assets/Editor/AutoPack.cs index 1b8a77bc27..da2354ef5c 100644 --- a/Assets/Editor/AutoPack.cs +++ b/Assets/Editor/AutoPack.cs @@ -295,7 +295,10 @@ public class AutoPack : EditorWindow static string[] ReplaceDir = new string[] { "/src/main/assets/Android", - "/src/main/assets/bin", + "/src/main/assets/bin" + }; + static string[] CopyDir = new string[] + { "/src/main/jniLibs" }; @@ -308,14 +311,22 @@ public class AutoPack : EditorWindow { string dir = ReplaceDir[i]; string to = toPath + dir; - if (Directory.Exists(to)) Directory.Delete(to, true); - Directory.CreateDirectory(to); - GameCore.FileUtils.CopyDir(fromPath + dir, to, (string dirName, string fileName, float progress)=> + GameCore.FileUtils.ReplaceDir(fromPath + dir, to, (string dirName, string fileName, float progress)=> { EditorUtility.DisplayProgressBar("正在复制:"+ dirName, fileName, progress); }); EditorUtility.ClearProgressBar(); } + for (int i = 0; i < CopyDir.Length; i++) + { + string dir = CopyDir[i]; + string to = toPath + dir; + GameCore.FileUtils.CopyDir(fromPath + dir, to, (string dirName, string fileName, float progress) => + { + EditorUtility.DisplayProgressBar("正在复制:" + dirName, fileName, progress); + }); + EditorUtility.ClearProgressBar(); + } Debug.Log(PackConfig[index][0] + ":母包工程资源替换完成"); // 替换build-id @@ -372,7 +383,7 @@ public class AutoPack : EditorWindow string toPath = _MomPackPath + PackConfig[index][2] + "/src/main/assets/Android"; if (Directory.Exists(toPath)) Directory.Delete(toPath, true); Directory.CreateDirectory(toPath); - GameCore.FileUtils.CopyDir(ABPath, toPath, (string dirName, string fileName, float progress) => + GameCore.FileUtils.ReplaceDir(ABPath, toPath, (string dirName, string fileName, float progress) => { EditorUtility.DisplayProgressBar("正在复制:" + dirName, fileName, progress); }); diff --git a/Assets/Scripts/Core/Core/Utils/FileUtils.cs b/Assets/Scripts/Core/Core/Utils/FileUtils.cs index f583598890..b85797eccb 100644 --- a/Assets/Scripts/Core/Core/Utils/FileUtils.cs +++ b/Assets/Scripts/Core/Core/Utils/FileUtils.cs @@ -76,11 +76,11 @@ namespace GameCore { } /// - /// 拷贝文件夹 + /// 替换文件夹 /// /// /// - public static void CopyDir(string fromDir, string toDir, Action callBack = null) + public static void ReplaceDir(string fromDir, string toDir, Action callBack = null) { if (!Directory.Exists(fromDir)) return; @@ -100,6 +100,37 @@ namespace GameCore { } string[] fromDirs = Directory.GetDirectories(fromDir); foreach (string fromDirName in fromDirs) + { + string dirName = Path.GetFileName(fromDirName); + string toDirName = Path.Combine(toDir, dirName); + ReplaceDir(fromDirName, toDirName, callBack); + } + } + + /// + /// 拷贝并覆盖文件夹 + /// + /// + /// + public static void CopyDir(string fromDir, string toDir, Action callBack = null) + { + if (!Directory.Exists(fromDir)) + return; + if (!Directory.Exists(toDir)) + { + Directory.CreateDirectory(toDir); + } + string[] files = Directory.GetFiles(fromDir); + int i = 0; + foreach (string formFileName in files) + { + string fileName = Path.GetFileName(formFileName); + string toFileName = Path.Combine(toDir, fileName); + File.Copy(formFileName, toFileName, true); + if (callBack != null) callBack(fromDir, fileName, (float)++i / files.Length); + } + string[] fromDirs = Directory.GetDirectories(fromDir); + foreach (string fromDirName in fromDirs) { string dirName = Path.GetFileName(fromDirName); string toDirName = Path.Combine(toDir, dirName); diff --git a/Assets/Scripts/Editor/GameEditor/FrameTool/FrameTool.cs b/Assets/Scripts/Editor/GameEditor/FrameTool/FrameTool.cs index 10689a5519..c34dcafaad 100644 --- a/Assets/Scripts/Editor/GameEditor/FrameTool/FrameTool.cs +++ b/Assets/Scripts/Editor/GameEditor/FrameTool/FrameTool.cs @@ -209,7 +209,7 @@ namespace GameEditor.FrameTool //Debug.LogError(streamingPath); if (Directory.Exists(streamingPath)) Directory.Delete(streamingPath,true); Directory.CreateDirectory(streamingPath); - FileUtils.CopyDir(exportPath, streamingPath); + FileUtils.ReplaceDir(exportPath, streamingPath); //CopyResourceFiles(); }