2016-09-05 5 views
1

Итак, я с помощью следующего кода, чтобы узнать текущие окна «главный диск»с использованием корневого каталога строки

string rootDrive = Path.GetPathRoot(Environment.SystemDirectory); 
string path [email protected]"c:\Users\Perry Craft\Desktop\password.txt"; 
Console.WriteLine("Windows is installed on the " + rootDrive + " drive"); 
if (!File.Exists(@"C: \Users\%username%\Desktop")) 

, что я пытаюсь сделать, это заменить с в «C: \» с строковое значение rootDrive, так что даже если приводом Windows является J: \, он будет использовать этот символ и сможет сохранять его на рабочем столе пользователя. Нужно ли мне вручную разбирать строку rootDrive или я ошибаюсь в своем представлении о том, что все, что мне нужно сделать, это написать ее, чтобы сказать.

string rootDrive = Path.GetPathRoot(Environment.SystemDirectory); 
string path [email protected]"rootDrive:\Users\Perry Craft\Desktop\password.txt"; 

ответ

2

Вы можете сделать это с помощью простой конкатенации:

string path = rootDrive + @"Users\Perry Craft\Desktop\password.txt"; 
3

Если вам нужен каталог рабочего стола, опрашивать Environment.GetFolderPath, чтобы получить его непосредственно. Нет никакой гарантии, что рабочий стол пользователя находится на X:\Users\%username%\desktop (где X - это объем системы); на самом деле это полностью possible для Windows и профилей пользователей, которые будут расположены на разных томах.

Например, чтобы получить путь к password.txt на рабочем столе, используйте:

string desktoppath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 
string path = Path.Combine(desktoppath, "password.txt"); 
Смежные вопросы