2010-04-30 33 views
10

J'ai cherché un moment mais je n'ai rien trouvé qui m'a aidé. Est-il possible de vérifier si une lettre de lecteur représente un lecteur/lecteur réseau partagé ou un disque local en python? Je suppose qu'il y a une fonction windows api qui me donne cette information, mais je ne peux pas le trouver. Peut-être y a-t-il même une méthode déjà intégrée en python?Vérifiez par programme si une lettre de lecteur est un lecteur réseau/partagé

Ce que je cherche est quelque chose avec ce ou un comportement similaire:

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

Cela me aiderait ainsi:

someMagicMethod2() #outputs list of shared drive letters 

Merci beaucoup à l'avance!

Répondre

11

La fonction GetDriveType du module win32file peut vous aider - c'est un wrapper pour la fonction WINAPI GetDriveType.

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

Vous seriez en mesure d'énumérer tous avec la fonction GetLogicalDriveStrings() dans le module win32api, puis utilisez une boucle pour choisir uniquement les lecteurs du réseau.

+0

Super c'est exactement ce que je cherchais! Merci beaucoup! –