Прочитать весь текст с помощью System.Environment.Username

Я пытаюсь прочитать весь текст и заменить определенный текст в определенном месте. Это место должно иметь имя пользователя.

Путь к файлу:

C:\Users\zmatar\AppData\Roaming\NexJen Systems\My

Вот что у меня есть. Я получаю сообщение об ошибке, что не может найти местоположение. Что я собирался сделать, так это, возможно, передать его на метку, а затем добавить метку в местоположение? я не знаю

string text = File.ReadAllText(@"C:\Users\System.Environment.UserName\AppData\Roaming\NexJen Systems\My\IsisSettings.isis");
text = text.Replace("172.16.1.24", "172.16.1.23");
File.WriteAllText(@"C:\Users\System.Environment.UserName\AppData\Roaming\NexJen Systems\My\IsisSettings.isis", text);

c#
person Billyhoe5    schedule 18.09.2014    source источник


Ответы (1)


Используйте Path.Combine для создания пути с помощью Environment.SpecialFolder enum для получения текущей перемещаемой папки пользователя. Это удаляет жесткое кодирование Environment.UserName в пути к перемещаемой папке текущего пользователя. Не обязательно иметь имя пользователя как часть пользовательской папки в позиции по умолчанию на локальном диске См. Перенаправление папок.

string basePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string fullPath = Path.Combine(basePath, @"NexJen Systems\My\IsisSettings.isis");
string text = File.ReadAllText(fullPath);
text = text.Replace("172.16.1.24", "172.16.1.23");
File.WriteAllText(fullPath, text);

Вы можете найти хорошее объяснение Environment.SpecialFolder в этом ответе и также несколько советов по использованию этой папки.

person Steve    schedule 18.09.2014
comment
Проголосовал за, потому что имена папок профиля не обязательно совпадают с именем пользователя. - person Dai; 19.09.2014
comment
Я получаю нераспознанную escape-последовательность на My и IsisSettings.isis - person Billyhoe5; 19.09.2014
comment
исправил это, добавив строку @ fullPath = Path.Combine(basePath, @NexJen Systems\My\IsisSettings.isis); - person Billyhoe5; 19.09.2014