Techhubcoding Ответов: 2

C# определите имя пользователя в filepath. Помогите!


- Привет!
Мне нужна быстрая помощь, чтобы создать приложение на C#, которое работает на всех учетных записях пользователей и будет копировать текстовый файл из C:\Users\Techhubcoding\AppData\Local\test.txt чтобы C:\Users\Techhubcoding\Desktop\test

Мой пользовательский профайл-это "Techhubcoding", и я хочу, чтобы он работал для всех компьютерных профайлов.
Как определить "имя профиля компьютера" в пути к файлу?

Что я уже пробовал:

Я уже пробовал это сделать:
File.Copy(@"C:\Users\Techhubcoding\AppData\Local\test.txt", @"C:\Users\Techhubcoding\Desktop\test\test.txt");

Файл был скопирован в нужное место, но мне нужна помощь, чтобы заставить путь к файлу работать для любого пользователя.

Я тоже пробовал Environment.ExpandEnvironmentVariables и Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) но мне не удалось получить эту работу.

Я был бы очень благодарен за любую помощь! (;
Спасибо!

2 Ответов

Рейтинг:
12

RickZeeland

Вы можете использовать:

Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)

Видеть: Окружающая среда.Перечисление Специальных Папок (System) | Microsoft Docs[^]
Пример:
string userPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
string destFilename = Path.Combine(userPath, "test.txt");
File.Copy("test.txt", destFilename);


Techhubcoding

Я до сих пор не понимаю, как это работает...
Не могли бы вы привести пример, пожалуйста?

Techhubcoding

Спасибо!!!

Techhubcoding

Конечный результат, который работает для меня!
строка userPath = Environment.GetFolderPath(Environment.Специальная папка.Профиль пользователя);
Файл.Копия(или путь + @"\Appdata\Local\test.txt", или путь + @"\Desktop\test\test.txt");

OriginalGriff

Ты не должен этого делать!
https://docs.microsoft.com/en-us/dotnet/api/system.environment.specialfolder?view=netframework-4.8

- Папка профиля пользователя. Приложения не должны создавать файлы или папки на этом уровне; они должны помещать свои данные в места, указанные ApplicationData."

Рейтинг:
0

OriginalGriff

Попробуй:

Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)

он вернет папку базы пользователей:
C:\Users\Techhubcoding
Или:
C:\Users\PaulG
по мере необходимости.


Techhubcoding

Но как определить расположение файла после возврата в базовую папку?
Не могли бы вы привести пример, пожалуйста.
Спасибо за решение!