private void RecurseStreamingAssetsDirectory(string path, ManifestEntry newEntry) { var di = new DirectoryInfo(path); // foreach (var fi in di.EnumerateFiles()) di.EnumerateFiles() .ToList().ForEach( //.AsParallel().ForAll( fi => { var validExtensions = new List <string>(new[] { ".json", ".csv" }); var fileName = fi.Name; var fileData = validExtensions.Contains(fi.Extension) ? File.ReadAllText(fi.FullName) : null; var hostDirectory = di.Name; var retVal = StreamingAssetProcessor.ProcessFile( newEntry, di, fi.FullName, fileData, hostDirectory, this.referenceFinderService, this.logger); if (retVal != null) { if (retVal is IObjectDefinition obj) { newEntry.Objects.Add(obj); if (retVal is AssetBundleObjectDefinition assetBundleObjectDefinition) { var stubJsonObject = JsonConvert.DeserializeObject($"{{\"AssetBundleName\": \"{assetBundleObjectDefinition.Id}\"}}"); var prefabObjectDefinition = ObjectDefinitionFactory.ObjectDefinitionFactorySingleton.Get( ObjectType.Prefab, new ObjectDefinitionDescription(null, null, null, null, (JObject)stubJsonObject), (JObject)stubJsonObject, Path.Combine(path, assetBundleObjectDefinition.Name), referenceFinderService); newEntry.Objects.Add(prefabObjectDefinition); } } else if (retVal is IResourceDefinition res) { newEntry.Resources.Add(res); } else { throw new InvalidProgramException($"Unknown streaming asset object."); } } }); di.GetDirectories() .ToList().ForEach( //.AsParallel().ForAll( subdi => this.RecurseStreamingAssetsDirectory(subdi.FullName, newEntry)); }
private void RecurseStreamingAssetsDirectory(string path, ManifestEntry newEntry) { var di = new DirectoryInfo(path); foreach (var fi in di.EnumerateFiles()) { var fileName = fi.Name; var fileData = File.ReadAllText(fi.FullName); var hostDirectory = di.Name; var retVal = StreamingAssetProcessor.ProcessFile( newEntry, di, fi.FullName, fileData, hostDirectory, this.referenceFinderService); if (retVal != null) { if (retVal is IObjectDefinition obj) { newEntry.Objects.Add(obj); } else if (retVal is IResourceDefinition res) { newEntry.Resources.Add(res); } else { throw new InvalidProgramException($"Unknown streaming asset object."); } } } di .GetDirectories() //.ToList().ForEach( .AsParallel().ForAll( subdi => this.RecurseStreamingAssetsDirectory(subdi.FullName, newEntry)); }