private static void LoadAssetsFile(string fullName, List <AssetsFile> assetsfileList, EndianBinaryReader reader, string parentPath = null) { var fileName = Path.GetFileName(fullName); StatusStripUpdate("Loading " + fileName); if (!assetsfileListHash.Value.Contains(fileName.ToUpper())) { var assetsFile = new AssetsFile(fullName, reader); if (assetsFile.valid) { assetsFile.parentPath = parentPath; assetsfileList.Add(assetsFile); assetsfileListHash.Value.Add(assetsFile.upperFileName); #region for 2.6.x find mainData and get string version if (assetsFile.fileGen == 6 && fileName != "mainData") { var mainDataFile = assetsfileList.Find(aFile => aFile.fileName == "mainData"); if (mainDataFile != null) { assetsFile.m_Version = mainDataFile.m_Version; assetsFile.version = mainDataFile.version; assetsFile.buildType = mainDataFile.buildType; } else if (File.Exists(Path.GetDirectoryName(fullName) + "\\mainData")) { mainDataFile = new AssetsFile(Path.GetDirectoryName(fullName) + "\\mainData", new EndianBinaryReader(File.OpenRead(Path.GetDirectoryName(fullName) + "\\mainData"))); assetsFile.m_Version = mainDataFile.m_Version; assetsFile.version = mainDataFile.version; assetsFile.buildType = mainDataFile.buildType; } } #endregion int value = 0; foreach (var sharedFile in assetsFile.sharedAssetsList) { var sharedFilePath = Path.GetDirectoryName(fullName) + "\\" + sharedFile.fileName; var sharedFileName = sharedFile.fileName; if (!importFilesHash.Value.Contains(sharedFileName.ToUpper())) { if (!File.Exists(sharedFilePath)) { var findFiles = Directory.GetFiles(Path.GetDirectoryName(fullName), sharedFileName, SearchOption.AllDirectories); if (findFiles.Length > 0) { sharedFilePath = findFiles[0]; } } if (File.Exists(sharedFilePath)) { importFiles.Value.Add(sharedFilePath); importFilesHash.Value.Add(sharedFileName.ToUpper()); value++; } } } if (value > 0) { ProgressBarMaximumAdd(value); } } else { reader.Dispose(); } } }