Auflisten aller verfügbaren Laufwerksbuchstaben im Windows
Möchte ich aufzählen, die alle verfügbaren Laufwerksbuchstaben, die nicht bereits genommen) in Windows mit VC++.
Wie kann ich dies tun?
InformationsquelleAutor der Frage sharkin | 2008-11-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
::GetLogicalDrives() gibt eine Liste der verfügbaren (sprich: benutzt) - Laufwerke werden als bits einer Maske. Dies sollte auch für die zugeordneten Netzwerk-Laufwerke. So können Sie einfach zu Fuß die bits zu finden, die bits sind null, der bedeutet, dass kein Laufwerk vorhanden ist. Wenn Sie Zweifel haben, können Sie immer rufen ::GetDriveType() mit den Laufwerksbuchstaben +
":\"
(":\\"
im C-code, oder_T(":\\")
im Unicode-aware Terminologie, natürlich), und das sollte zurückDRIVE_UNKNOWN
oderDRIVE_NO_ROOT_DIR
wenn das Laufwerk verfügbar ist.InformationsquelleAutor der Antwort JTeagle
GetLogicalDriveStrings
kann dir nur die Liste der derzeit verwendeten Laufwerksbuchstaben.GetVolumeInformation
kann verwendet werden, um mehr Informationen über ein bestimmtes Laufwerk.InformationsquelleAutor der Antwort Alnitak
Den GetLogicalDriveStrings-Funktion ist ein guter Ausgangspunkt.
InformationsquelleAutor der Antwort VonC
Im nicht shure, wie Sie aufzuzählen, oder wenn es zu kompilieren auf visual c++, aber ich sturm-codiert dieser auf Dev-C++ oder Code-Blöcke, um zu überprüfen, was im Laufwerk ist zugreifbar, indem mit CreateFile und welche Art von Antrieb ist durch die Verwendung von GetDriveType. Programm prüft die Laufwerke von A-Z:
InformationsquelleAutor der Antwort SturmCoder
GetLogicalDrives und GetLogicalDriveStrings sind nicht zu sehen, Netzlaufwerke erstellt in einen anderen namespace.
Beispiel für den Aufruf der Funktionen aus einem Dienst läuft unter dem Lokalen System wird nicht die Netzwerk-Laufwerke erstellt durch einen angemeldeten Benutzer.
Dies geschieht beginnend mit Windows XP. Der nachfolgende Artikel beschreibt diesen Fall:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363908(v=vs. 85).aspx
InformationsquelleAutor der Antwort bogdan