.net - Sådan får du den nuværende Windows-mappe f.eks. C: \ i C #

Indlæg af Hanne Mølgaard Plasc

Problem



Som titlen antyder, hvordan kan du få det nuværende OS-drev, så du kan tilføje det i en streng, for eksempel:


MessageBox.Show(C: + "My Documents");


Tak

Bedste reference


Tilføj en system-IO-reference,


using System IO;


Skriv så din kode som denne;


string path = Path.GetPathRoot(Environment.SystemDirectory);


Denne kode indstiller path til det lokale drevbogstav, som Windows er installeret. Du kan bruge ovenstående variabel til yderligere yderligere ændringer.


f.eks:


MessageBox.Show("Windows is installed to Drive " + path);


Indtast billedbeskrivelse her

Andre referencer 1


Når du leder efter en bestemt mappe (f.eks. Mine dokumenter), skal du ikke bruge en hardkodet sti. Stier kan ændres fra version til version af Windows (C:Documents and Settings mod C:Users) og var lokaliseret i ældre versioner (C:UsersuserDocuments vs C:UsuariosuserDocumentos). Afhængigt af konfigurationen kan brugerprofiler være på et andet drev end Windows. Windows er måske ikke installeret, hvor du forventer det (det behøver ikke at være i Windows. Der er nok andre tilfælde, jeg ikke er opmærksom på.


Brug i stedet Shell API (SHGetKnownFolderPath) for at få den faktiske vej. I. NET opnås disse værdier fra Environment.GetFolderPath. Hvis du leder efter brugerens My Documents-mappe: [15]


Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);


Fuld liste over specielle mapper [16]

Andre referencer 2


Du kan bruge Environment.CurrentDirectory for at hente den aktuelle mappe. Environment.SystemDirectory vil give dig systemmappen (dvs.: C: \ Windows \ System32). Path.GetPathRoot vil give dig roden på stien: [17] [18] [19]


var rootOfCurrentPath = Path.GetPathRoot(Environment.CurrentDirectory);
var driveWhereWindowsIsInstalled = Path.GetPathRoot(Environment.SystemDirectory);

Andre referencer 3


Hvis du ikke har noget imod lidt parsing:
http://msdn.microsoft.com/en-us/library/system.environment.systemdirectory.aspx[20]


Environment.systemdirectory returnerer den aktuelle mappe.