Как пользоваться Enviroment или как указать путь к файлу
Цитата: Slava от 19.03.2023, 21:01Доброе время суток, товарищи 🖐
Делаю небольшую утилиту и мне нужно изменить в конфиге игры пару строк.
Хочу что моя программа работала у всех.
Путь к файлу выглядит вот так:C:\Users\Slava\Documents\My Games\Rainbow Six - Siege\23c39dba-e493-4685-90be-d1ef4d9daa73\GameSettings.ini
Во-первых можете объяснить, как использовать класс Environment, прошу вас сердечно ❤
Во-вторых папка23c39dba-e493-4685-90be-d1ef4d9daa73является уникальной,
и для каждого пользователя эта папка может иметь своё название.
Доброе время суток, товарищи 🖐
Делаю небольшую утилиту и мне нужно изменить в конфиге игры пару строк.
Хочу что моя программа работала у всех.
Путь к файлу выглядит вот так:
C:\Users\Slava\Documents\My Games\Rainbow Six - Siege\23c39dba-e493-4685-90be-d1ef4d9daa73\GameSettings.ini
Во-первых можете объяснить, как использовать класс Environment, прошу вас сердечно ❤
Во-вторых папка Скопировано23c39dba-e493-4685-90be-d1ef4d9daa73 является уникальной,
и для каждого пользователя эта папка может иметь своё название.
Цитата: Adler от 19.03.2023, 23:07Добрый день.
Зачем вам Environment? Это большой класс с множеством методов и свойств.
Ищите саму папку C:\Users\<имя пользователя>\Documents\My Games\Rainbow Six - Siege\
(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "My Games\\Rainbow Six - Siege")) потом находите в ней все папки и путем перебора находите в какой из них есть файлGameSettings.ini. Это первое, что пришло в голову. Возможно это еще как-то иначе можно найти.
Добрый день.
Зачем вам Environment? Это большой класс с множеством методов и свойств.
Ищите саму папку C:\Users\<имя пользователя>\Documents\My Games\Rainbow Six - Siege\
(СкопированоPath.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "My Games\\Rainbow Six - Siege")) потом находите в ней все папки и путем перебора находите в какой из них есть файл СкопированоGameSettings.ini. Это первое, что пришло в голову. Возможно это еще как-то иначе можно найти.
Цитата: Slava от 20.03.2023, 19:18Цитата: Adler от 19.03.2023, 23:07Добрый день.
Зачем вам Environment? Это большой класс с множеством методов и свойств.
Ищите саму папку C:\Users\<имя пользователя>\Documents\My Games\Rainbow Six - Siege\
(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "My Games\\Rainbow Six - Siege")) потом находите в ней все папки и путем перебора находите в какой из них есть файлGameSettings.ini. Это первое, что пришло в голову. Возможно это еще как-то иначе можно найти.Благодарю, есть нюанс. В папке
Rainbow Six - Siegeнаходятся папка(и) в которых находятся ini-файл, который мне и нужен. Эти папки создаются автоматически под каждую учётную запись и соответственно имеют уникальное название.
Цитата: Adler от 19.03.2023, 23:07Добрый день.
Зачем вам Environment? Это большой класс с множеством методов и свойств.
Ищите саму папку C:\Users\<имя пользователя>\Documents\My Games\Rainbow Six - Siege\
(СкопированоPath.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "My Games\\Rainbow Six - Siege")) потом находите в ней все папки и путем перебора находите в какой из них есть файлСкопированоGameSettings.ini. Это первое, что пришло в голову. Возможно это еще как-то иначе можно найти.
Благодарю, есть нюанс. В папке СкопированоRainbow Six - Siege находятся папка(и) в которых находятся ini-файл, который мне и нужен. Эти папки создаются автоматически под каждую учётную запись и соответственно имеют уникальное название.
Цитата: Slava от 20.03.2023, 19:30Upd в основном там одна папка, т.к обычно в игру на компьютере заходят с одного аккаунта. Ещё раз спасибо ❤️
Пойду посмотрю как использоватьPath
Upd в основном там одна папка, т.к обычно в игру на компьютере заходят с одного аккаунта. Ещё раз спасибо ❤️
Пойду посмотрю как использовать СкопированоPath
Цитата: yuri от 20.03.2023, 19:38Привет, Я бы сделал так:
[spoiler title=""]string[] directories; try { directories = Directory.GetDirectories(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"My Games\Rainbow Six - Siege")); } catch { MessageBox.Show("Game not found"); return; } foreach (string dir in directories) { if (File.Exists(dir + "\\GameSettings.ini")) { // some code break; } }
[/spoiler]
Привет, Я бы сделал так:
string[] directories;
try {
directories = Directory.GetDirectories(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"My Games\Rainbow Six - Siege"));
}
catch {
MessageBox.Show("Game not found");
return;
}
foreach (string dir in directories) {
if (File.Exists(dir + "\\GameSettings.ini")) {
// some code
break;
}
}

