2011-08-30 9 views
19

Come suggerisce il titolo, come è possibile ottenere l'unità del sistema operativo corrente, così si potrebbe aggiungere in un esempio di stringa:Come ottenere la directory di Windows attuale ad es. C: in C#

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

Grazie

+1

possibile duplicato di [Come ottenere il nome dell'unità che il sistema operativo è installato su?] (Http: // StackOverflow. it/questions/200066/how-to-get-the-name-of-the-drive-that-the-os-is-installed-on) –

+0

Le miglia non dimenticano di votare per le risposte una volta che la domanda è stata risposta. –

+0

@ Cubicle.Jockey Farà :) – Miles

risposta

47

Aggiungere un riferimento sistema IO,

using System IO; 

Quindi scrivere il codice in questo modo;

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

Questo codice imposterà path alla lettera di unità locale che è stato installato Windows. È possibile utilizzare la variabile precedente per ulteriori modifiche.

esempio:

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

enter image description here

+1

Signore, sono dopo l'unità dell'installazione di Windows: ad es. C: \ – Miles

+2

@Miles - sì, ho capito. Questo è esattamente ciò che ti offre Path.GetPathRoot (Environment.SystemDirectory). –

+0

Grazie !!!!! – Miles

6

È possibile utilizzare per ottenere la directory corrente. Environment.SystemDirectory ti darà la cartella di sistema (es .: C: \ Windows \ System32). Path.GetPathRoot vi darà la radice del percorso:

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

Quando alla ricerca di una cartella specifica (ad esempio Documenti), non utilizzare un percorso hard-coded. I percorsi possono passare da versione a versione di Windows (C:\Documents and Settings\ vs C:\Users\) e sono stati localizzati nelle versioni precedenti (C:\Users\user\Documents\ rispetto a C:\Usuarios\user\Documentos\). A seconda della configurazione, i profili utente potrebbero trovarsi su un'unità diversa rispetto a Windows. Windows potrebbe non essere installato dove previsto (non deve essere in \Windows\). Probabilmente ci sono altri casi di cui non sono a conoscenza.

Utilizzare invece l'API Shell (SHGetKnownFolderPath) per ottenere il percorso effettivo. In .NET, questi valori sono facilmente ottenuti da Environment.GetFolderPath. Se siete alla ricerca di cartella Documenti dell'utente:

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); 

Full list of special folders

Problemi correlati