Win32 Drive List Redux

Thomas Heller theller at
Thu Jan 2 20:34:15 CET 2003

Tim Daneliuk <tundra at> writes:

> Some time ago, there was a brief thread on how to get a list of
> available drives on Win32.  Peter Hansen suggested the use of:
> win32api.GetLogicalDriveStrings()
> And Ken Seehof suggested:
> def drives():
>      d = []
>      for c in string.lowercase:
>          if os.path.exists('%s:/'%c):
>              d.append('%s:'%c)
>      return d
> In my application, the first solution is not practical because I cannot
> gurantee the user will have win32api (win32all) installed.

ctypes may be small enough so that you can redistribute it
with your app. With ctypes you would write:

from ctypes import windll, c_string

size = windll.kernel32.GetLogicalDriveStringsA(0, None)
s = c_string('\000' * size)
size = windll.kernel32.GetLogicalDriveStringsA(len(s), s)
print s.raw[:size]

Available at


More information about the Python-list mailing list