2010-04-30 18 views
10

Realicé búsquedas durante un tiempo pero no encontré nada que me haya ayudado. ¿Hay alguna forma de comprobar si una letra de unidad representa una unidad de disco/red compartida o un disco local en python? Supongo que hay una función de API de Windows que me da esa información, pero no puedo encontrarla. Tal vez incluso hay un método ya integrado en Python?Comprueba de forma programática si una letra de unidad es una unidad compartida/de red

Lo que estoy buscando es algo con esto o comportamiento similar:

someMagicMethod("C:\\") #outputs True 'is a local drive' 
someMagicMethod("Z:\\") #outputs False 'is a shared drive' 

Eso me ayudaría así:

someMagicMethod2() #outputs list of shared drive letters 

Muchas gracias por adelantado!

Respuesta

11

La función GetDriveType en el módulo win32file puede ayudarlo - es un contenedor para la función WINAPI GetDriveType.

import win32file 
isNetworkDrive = win32file.GetDriveType("Z:\\") == win32file.DRIVE_REMOTE 

Usted sería capaz de enumerar todos con la función GetLogicalDriveStrings() en el módulo win32api, a continuación, utilizar un bucle para seleccionar sólo las unidades de red.

+0

¡Eso es justo lo que estaba buscando! ¡Muchas gracias! –

Cuestiones relacionadas