/// <summary> /// 拆分资源列表 /// </summary> /// <param name="RootName"></param> public void SplitConfig(string RootName) { List <ResourceItemConfig> Tmp = new List <ResourceItemConfig>(); foreach (var item in ChildBuildItem) { if (item.NodelType == ResourceBuildNodelType.ResourcesItemNodel && item.RootName == RootName) { Tmp.Add(item); } else { if (item.NodelType == ResourceBuildNodelType.FolderNodel || item.NodelType == ResourceBuildNodelType.ModelNodel) { item.SplitConfig(RootName); if (item.NodelType == ResourceBuildNodelType.UselessNodel) { Tmp.Add(item); } } } } foreach (var item in Tmp) { ChildBuildItem.Remove(item); } if (ChildBuildItem.Count == 0) { NodelType = ResourceBuildNodelType.UselessNodel; } }
public ResourceItemConfig(string _RootName, ResourceItemConfig _Parent, string _Path) { RootName = _RootName; Path = _Path; Name = PathTools.GetPathFolderName(Path); ModelName = _Parent == null ? ModelName : _Parent.ModelName; Layer = _Parent == null ? 0 : _Parent.Layer + 1; ChildBuildItem = new List <ResourceItemConfig>(); if (PathTools.IsDirectory(Path)) { string[] fileList = Directory.GetFileSystemEntries(Path); foreach (string file in fileList) { ResourceItemConfig Item = new ResourceItemConfig(RootName, this, file); if (Item.NodelType != ResourceBuildNodelType.UselessNodel) { ChildBuildItem.Add(Item); } } if (ChildBuildItem.Count > 0) { NodelType = ResourceBuildNodelType.FolderNodel; } else { NodelType = ResourceBuildNodelType.UselessNodel; } } else { if (PathTools.CheckSuffix(Path, ToolsConfig.CanBuildFileTypes)) { Name = Name.Substring(0, Name.IndexOf(".")); NodelType = ResourceBuildNodelType.ResourcesItemNodel; } else { NodelType = ResourceBuildNodelType.UselessNodel; } } }