private ConfigManager() { FileInfo fi = new FileInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "BlazeGamesIM", "config.ini")); if (fi.Exists) { string[] FileData = File.ReadAllLines(fi.FullName); if (FileData.Length > 0) { if (FileData[0] != "config_ver=2") { File.WriteAllText(fi.FullName, DefaultConfig); FileData = File.ReadAllLines(fi.FullName); } } else { File.WriteAllText(fi.FullName, DefaultConfig); FileData = File.ReadAllLines(fi.FullName); } foreach (string ConfigLine in FileData) { if (ConfigLine.Trim() == "") { continue; } else if (ConfigLine.Split('=').Length < 2) { continue; } else { string[] ConfigLineData = ConfigLine.Split('='); ConfigData.Add(ConfigLineData[0], String.Join("=", ConfigLineData, 1, ConfigLineData.Length - 1)); } } } }
// End of IPhotoRenderContext interface method implementation. //======================================================================================================================== // Retrieve the list of extra search paths for Revit texture files. // This is done by reading user's Revit.ini file and searching for field AdditionalRenderAppearancePaths // which contains search paths that Revit will use to locate texture files. // Note that the behavior in Revit is to search in the directory itself and not in child sub-directories. private void RetrieveExtraTexturePaths() { string UserSpecificDirectoryPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); if (!string.IsNullOrEmpty(UserSpecificDirectoryPath) && Path.IsPathRooted(UserSpecificDirectoryPath) && Directory.Exists(UserSpecificDirectoryPath)) { string FullRevitIniPath = $"{UserSpecificDirectoryPath}\\AppData\\Roaming\\Autodesk\\Revit\\Autodesk Revit {ProductVersion}\\Revit.ini"; if (File.Exists(FullRevitIniPath)) { FileStream RevitIniStream = new FileStream(FullRevitIniPath, FileMode.Open, FileAccess.Read, FileShare.Read); using (StreamReader RevitIniReader = new StreamReader(RevitIniStream)) { string ConfigLine; while ((ConfigLine = RevitIniReader.ReadLine()) != null) { if (ConfigLine.Contains("AdditionalRenderAppearancePaths")) { string[] SplitLineArray = ConfigLine.Split('='); if (SplitLineArray.Length > 1) { string[] TexturePaths = SplitLineArray[1].Split('|'); foreach (string TexturePath in TexturePaths) { ExtraTexturePaths.Add(TexturePath); } break; } } } } } } }