private static void ReadSplitFile <T>(bool hasNoKeyTable) where T : ITable { T luaTable = default; ILuaFile <T> luaFile = (ILuaFile <T>)luaTable; ILuaSplitFile <T> luaSplitFile = (ILuaSplitFile <T>)luaTable; string[] arrayFullPath = Directory.GetFiles(luaSplitFile.GetFolderPath()); if (arrayFullPath == null || arrayFullPath.Length == 0) { return; } List <T> list = luaFile.GetModel(); string mainFileName = luaSplitFile.GetMainFileName(); string childFileHeadStart = luaSplitFile.GetChildFileHeadStart(); bool isCheckMainFile = false; for (int fileIndex = 0; fileIndex < arrayFullPath.Length; fileIndex++) { string fullPath = arrayFullPath[fileIndex]; if (!isCheckMainFile && fullPath.Contains(mainFileName)) { isCheckMainFile = true; continue; } if (fullPath.EndsWith(Config.MetaExtension)) { continue; } string luaText = File.ReadAllText(fullPath); if (hasNoKeyTable) { WriteArrayKeyToFileString(ref luaText); } T table = ReadLuaSplitFileTable <T>(luaText, childFileHeadStart); list.Add(table); } }