This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author eryksun
Recipients Dum.Dum, eryksun
Date 2015-09-26.21:25:55
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1443302755.33.0.151427230329.issue25241@psf.upfronthosting.co.za>
In-reply-to
Content
Here's a rewrite with a cleaner while loop, at least to me:

    def list_volumes():
        vname = ctypes.create_unicode_buffer(wintypes.MAX_PATH)
        vhandle = kernel32.FindFirstVolumeW(vname, len(vname))
        if vhandle == INVALID_HANDLE_VALUE:
            raise ctypes.WinError(ctypes.get_last_error())
        volumes = [vname.value]
        try:
            while kernel32.FindNextVolumeW(vhandle, vname, len(vname)):
                volumes.append(vname.value)
            last_error = ctypes.get_last_error()
            if last_error != ERROR_NO_MORE_FILES:        
                raise ctypes.WinError(last_error)
        finally:
            if not kernel32.FindVolumeClose(vhandle):
                raise ctypes.WinError(ctypes.get_last_error())
        return volumes
History
Date User Action Args
2015-09-26 21:25:55eryksunsetrecipients: + eryksun, Dum.Dum
2015-09-26 21:25:55eryksunsetmessageid: <1443302755.33.0.151427230329.issue25241@psf.upfronthosting.co.za>
2015-09-26 21:25:55eryksunlinkissue25241 messages
2015-09-26 21:25:55eryksuncreate