2016-09-05 2 views
1

Also, ich den Code verwenden als den aktuelle Fenster „Hauptantrieb“, um herauszufinden, folgtmit Stammverzeichnis String

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")) 

was ich versuche, die c in „c: \“ zu tun ist, ersetzen der Zeichenfolgenwert von rootDrive, so dass selbst dann, wenn das Windows-Laufwerk J: \ ist, dieses Zeichen verwendet und auf dem Desktop des Benutzers gespeichert werden kann. Muss ich die rootDrive Zeichenfolge irgendwie parsen oder bin ich falsch in meinem Denken, dass alles, was ich tun müsste, ist es zu schreiben, um es zu sagen.

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

Antwort

2

Sie können dies mit einfacher String-Verkettung:

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

Wenn Sie das Desktop-Verzeichnis benötigen, verhören Environment.GetFolderPath es direkt zu erhalten. Es gibt keine Garantie dafür, dass sich der Desktop des Benutzers unter X:\Users\%username%\desktop befindet (wobei X das Systemvolume ist). es ist in der Tat vollständig possible für Windows und Benutzerprofil-Verzeichnisse auf verschiedenen Volumes befinden.

Zum Beispiel den Pfad zu password.txt auf dem Desktop abzurufen, zu verwenden:

string desktoppath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 
string path = Path.Combine(desktoppath, "password.txt"); 
Verwandte Themen