/// <summary> /// Gets list of all additional mount points from main configuration file. /// </summary> private List <String> GetSteamMountPoints() { // Creating a new list for storing result... List <String> Result = new List <String> { FullSteamPath }; // Trying to get additional mount points by reading them from config... try { // Opening file stream... using (StreamReader SteamConfig = new StreamReader(GetSteamConfig(), Encoding.Default)) { // Creating buffer variable... string RdStr; // Reading up to the end... while (SteamConfig.Peek() >= 0) { // Reading row and cleaning it up... RdStr = SteamConfig.ReadLine().Trim(); // Checking if string is not empty... if (!(String.IsNullOrWhiteSpace(RdStr))) { // Finding additional game libraries... if (RdStr.IndexOf("BaseInstallFolder", StringComparison.CurrentCultureIgnoreCase) != -1) { RdStr = StringsManager.CleanString(RdStr, true, true); RdStr = RdStr.Remove(0, RdStr.IndexOf(" ") + 1); if (!(String.IsNullOrWhiteSpace(RdStr))) { Result.Add(RdStr); } } } } } } catch (Exception Ex) { Logger.Warn(Ex, DebugStrings.AppDbgExCoreStmManMountPointsFetchError); } // Returning final list... return(Result); }
/// <summary> /// Считывает из главного файла конфигурации Steam пути к дополнительным точкам монтирования. /// </summary> private List <String> GetSteamMountPoints() { // Создаём массив, в который будем помещать найденные пути... List <String> Result = new List <String> { FullSteamPath }; // Начинаем чтение главного файла конфигурации... try { // Открываем файл как поток... using (StreamReader SteamConfig = new StreamReader(Path.Combine(FullSteamPath, "config", "config.vdf"), Encoding.Default)) { // Инициализируем буферную переменную... string RdStr; // Читаем поток построчно... while (SteamConfig.Peek() >= 0) { // Считываем строку и сразу очищаем от лишнего... RdStr = SteamConfig.ReadLine().Trim(); // Проверяем наличие данных в строке... if (!(String.IsNullOrWhiteSpace(RdStr))) { // Ищем в строке путь установки... if (RdStr.IndexOf("BaseInstallFolder", StringComparison.CurrentCultureIgnoreCase) != -1) { RdStr = CoreLib.CleanStrWx(RdStr, true, true); RdStr = RdStr.Remove(0, RdStr.IndexOf(" ") + 1); if (!(String.IsNullOrWhiteSpace(RdStr))) { Result.Add(RdStr); } } } } } } catch (Exception Ex) { CoreLib.WriteStringToLog(Ex.Message); } // Возвращаем сформированный массив... return(Result); }