diff --git a/src/Luban.Client/Source/Utils/FileCleaner.cs b/src/Luban.Client/Source/Utils/FileCleaner.cs index 4f5ce5f..10e5640 100644 --- a/src/Luban.Client/Source/Utils/FileCleaner.cs +++ b/src/Luban.Client/Source/Utils/FileCleaner.cs @@ -90,7 +90,7 @@ namespace Luban.Client.Common.Utils else { s_logger.Info("[remove] dir: {dir}", subDir); - Directory.Delete(subDir); + FileUtil.DeleteDirectoryRecursive(subDir); } } } diff --git a/src/Luban.Common/Source/Utils/FileUtil.cs b/src/Luban.Common/Source/Utils/FileUtil.cs index 3f2cd78..f3290cc 100644 --- a/src/Luban.Common/Source/Utils/FileUtil.cs +++ b/src/Luban.Common/Source/Utils/FileUtil.cs @@ -219,5 +219,24 @@ namespace Luban.Common.Utils } return bytes; } + + public static void DeleteDirectoryRecursive(string rootDir) + { + string[] files = Directory.GetFiles(rootDir); + string[] dirs = Directory.GetDirectories(rootDir); + + foreach (string file in files) + { + File.SetAttributes(file, FileAttributes.Normal); + File.Delete(file); + } + + foreach (string dir in dirs) + { + DeleteDirectoryRecursive(dir); + } + + Directory.Delete(rootDir, false); + } } } diff --git a/src/Luban.Job.Cfg/Source/Validators/RefValidator.cs b/src/Luban.Job.Cfg/Source/Validators/RefValidator.cs index 919066e..952c799 100644 --- a/src/Luban.Job.Cfg/Source/Validators/RefValidator.cs +++ b/src/Luban.Job.Cfg/Source/Validators/RefValidator.cs @@ -27,7 +27,7 @@ namespace Luban.Job.Cfg.Validators public RefValidator(TType type, string tablesStr) { Type = type; - this.Tables = new List(DefUtil.TrimBracePairs(tablesStr).Split(',')); + this.Tables = DefUtil.TrimBracePairs(tablesStr).Split(',').Select(s => s.Trim()).ToList(); } public void Validate(ValidatorContext ctx, TType type, DType key) diff --git a/src/Luban.Job.Common/Source/Defs/CommonDefLoader.cs b/src/Luban.Job.Common/Source/Defs/CommonDefLoader.cs index 847e1ed..c7ba11f 100644 --- a/src/Luban.Job.Common/Source/Defs/CommonDefLoader.cs +++ b/src/Luban.Job.Common/Source/Defs/CommonDefLoader.cs @@ -164,7 +164,7 @@ namespace Luban.Job.Common.Defs private void AddModule(string defineFile, XElement me) { - var name = XmlUtil.GetOptionalAttribute(me, "name"); + var name = XmlUtil.GetOptionalAttribute(me, "name")?.Trim(); //if (string.IsNullOrEmpty(name)) //{ // throw new LoadDefException($"xml:{CurImportFile} contains module which's name is empty"); @@ -235,7 +235,7 @@ namespace Luban.Job.Common.Defs } var b = new Bean() { - Name = XmlUtil.GetRequiredAttribute(e, "name"), + Name = XmlUtil.GetRequiredAttribute(e, "name").Trim(), Namespace = CurNamespace, Parent = parent.Length > 0 ? parent : "", TypeId = XmlUtil.GetOptionIntAttribute(e, "id"), @@ -319,7 +319,7 @@ namespace Luban.Job.Common.Defs ValidAttrKeys(defineFile, e, _enumOptionalAttrs, _enumRequiredAttrs); var en = new PEnum() { - Name = XmlUtil.GetRequiredAttribute(e, "name"), + Name = XmlUtil.GetRequiredAttribute(e, "name").Trim(), Namespace = CurNamespace, Comment = XmlUtil.GetOptionalAttribute(e, "comment"), IsFlags = XmlUtil.GetOptionBoolAttribute(e, "flags"), diff --git a/src/Luban.Job.Common/Source/Defs/DefTypeBase.cs b/src/Luban.Job.Common/Source/Defs/DefTypeBase.cs index 84bee7b..8703be8 100644 --- a/src/Luban.Job.Common/Source/Defs/DefTypeBase.cs +++ b/src/Luban.Job.Common/Source/Defs/DefTypeBase.cs @@ -81,7 +81,8 @@ namespace Luban.Job.Common.Defs { return null; } - return ExternalType.Mappers.Find(m => m.Lan == DefAssemblyBase.LocalAssebmly.CurrentLanguage); + + return ExternalType.Mappers.Find(m => m.Lan == this.AssemblyBase.CurrentLanguage && this.AssemblyBase.CurrentExternalSelectors.Contains(m.Selector)); } }