Ejemplo n.º 1
0
        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));
                    }
                }
            }
        }
Ejemplo n.º 2
0
        // 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;
                                }
                            }
                        }
                    }
                }
            }
        }