IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Récupération chemin UNC d'un lecteur réseau


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Par défaut Récupération chemin UNC d'un lecteur réseau
    Bonjour,

    Je souhaiterais récupérer le chemin UNC d'un lecteur réseau mappé sur la machine.
    Après plusieurs heures de recherche, je n'ai toujours pas trouvé comment le faire en Vb.net.

    Quelqu'un aurait-il une solution ?

    Merci.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    L'info est dans la base de registre, dans HKEY_CURRENT_USER\Network\<lettre du lecteur>\RemotePath.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Shared Function GetNetworkPath(driveLetter As String) As String
    	Using key = Registry.CurrentUser.OpenSubKey("Network\" & driveLetter)
    		If key IsNot Nothing Then
    			Return DirectCast(key.GetValue("RemotePath"), String)
    		End If
    		Return Nothing
    	End Using
    End Function

    Attention, la clé Network ne contient pas seulement les lecteurs réseau (ConnectionType = 1), mais aussi les imprimantes réseau (ConnectionType = 2)... j'ai déjà eu un gros bug dans mon appli à cause de ça

    De plus, seul les lecteurs réseau "persistants" (configurés pour être reconnectés à l'ouverture de session) sont visibles dans la base de registre. Je ne sais pas trop comment récupérer les lecteurs temporaires...

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Par défaut
    Merci,

    Je vais tester ça tout de suite.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Voilà une solution qui marche aussi avec les lecteurs réseau non persistants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Shared Function GetNetworkPath(driveName As String) As String
    	If Not driveName.EndsWith(":") Then
    		driveName = driveName & ":"
    	End If
     
    	Dim query As String = String.Format("SELECT * FROM Win32_NetworkConnection WHERE LocalName = '{0}'", driveName)
    	Using searcher = New ManagementObjectSearcher("root\CIMV2", query)
    		For Each result As ManagementObject In searcher.Get()
    			Return DirectCast(result("RemotePath"), String)
    		Next
    	End Using
    	Return Nothing
    End Function
    Par contre c'est très lent... du moins sur mon PC

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Par défaut
    Merci.
    Ça marche impec!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupération de la taille de lecteurs réseau
    Par cynoq dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/08/2009, 15h33
  2. Comment récupérer le chemin UNC d'un lecteur réseau connecté ?
    Par david_chardonnet dans le forum Langage
    Réponses: 1
    Dernier message: 12/12/2007, 16h54
  3. Récupérer le chemin UNC d'un lecteur réseau ?
    Par agronomia dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/10/2007, 12h30
  4. Lecteur réseau, chemin absolu sur le serveur
    Par Tunka dans le forum Delphi
    Réponses: 1
    Dernier message: 02/10/2006, 13h39
  5. [VB.NET] Chemin complet d'un lecteur réseau
    Par sinoo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/08/2005, 10h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo