Die zugeordneten Netzwerk-Laufwerke aufgelistet werden können, die in C#

Ich versuche, um eine Liste aller lokalen Laufwerke in meiner Anwendung, und DriveInfo.GetDrives zurück geben Sie den lokalen Laufwerkbuchstaben zu, und ich brauche die zugeordneten Laufwerke zu.

Derzeit habe ich: C:, D: und G: (HDD), E: und F: (CD) und S: und Z: (zugeordneter Netzlaufwerke). (Ja, Sie sind alle sichtbar, in Windows Explorer und in Total Commander zu.)
Aber nur C, D, E, F, G abgerufen werden programmgesteuert.

Ich habe auch versucht Environment.GetLogicalDrives(), GetLogicalDriveStrings (pInvoke), FindFirstVolume und FindNextVolumen (pInvoke). Ich habe versucht zu finden, das zugeordnete Laufwerk Liste in der registry. Nichts funktioniert, nur die Festplatten und CD-Rom Buchstaben sind retreived.

Gibt es nicht irgendeine Ausnahme kommt, wird kein Fehler angezeigt, in den die direkte WinAPI-Aufrufe, und jetzt bin ich stecken. Ist es eine Art von Sicherheits-Einstellung? Überall, wo ich schaue, die Leute sagen, dass die DriveInfo.GetDrives geben sollte zurück die zugeordneten Laufwerke. Ist es wirklich wahr?

Ich bin mit Vista Home Pro. Die Anwendung läuft auf dem lokalen Rechner, und es wird gebaut, auch hier mit Visual Studio 2008.

Ich nach, was ich verwendet, aber es ist so einfach, es kann nicht sein, dass ich etwas falsch mache:

foreach (System.IO.DriveInfo di in System.IO.DriveInfo.GetDrives())
    Console.WriteLine(di.Name);

Ergebnis:
C:\
D:\
E:\
F:\
G:\
Drücken Sie eine beliebige Taste, um fortzufahren . . .

Wie kann ich machen, damit es funktioniert?

  • Laufen Sie diese im user-Modus, oder im service?
  • Im Benutzer-Modus. Ganz normale Konsolenanwendung, oder WinForm-app.
InformationsquelleAutor Zolka | 2009-12-13
Schreibe einen Kommentar