List Windows Logical Drive Letters

Ancient Dragon 2 Tallied Votes 900 Views Share

This demonstrates how to get a list of your computer's logical drive letters under the MS-Windows operating system.

#include <windows.h>
#include <stdio.h>


int main()
{
    char buf[255];
    // get the drive letters as a set of strings
    int sz = GetLogicalDriveStrings(sizeof(buf), buf);
    if( sz > 0)
    {
        // buf now contains a list of all the drive letters.  Each drive letter is
        // terminated with '\0' and the last one is terminated by two consecutive '\0' bytes.
        char* p1 = buf;
        char* p2;
        while( *p1 != '\0' && (p2 = strchr(p1,'\0')) != NULL )
        {
            printf("%s\n", p1);
            p1 = p2+1;
        }
    }
    else
    {
        // Oops! something went wrong so display the error message
        DWORD dwError = GetLastError();
        FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, dwError, 0, buf, sizeof(buf), 0);
        printf("%s\n", buf);

    }
}
William Hemsworth 1,339 Posting Virtuoso

really nice snippet (: I'm sure this will come in handy for me sometime.

marco93 -87 Junior Poster

See rather the Microsoft sample.
16 years old... (beginner code for a so simple api, posted 10000 times on BBS & Usenet...)

tux4life commented: You're pathetic. -2
Ancient Dragon 5,243 Achieved Level 70 Team Colleague Featured Poster

>>See rather the Microsoft sample
What sample? Post link.

[edit] Probably this?

>>posted 10000 times on BBS & Usenet.
Probably -- now its been posted 10001 times :)

tux4life commented: Well said. +8
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.