OVH Cloud OVH Cloud

Nom Fichier UNC

8 réponses
Avatar
Emmanuel CHONION
Je cherche un moyer rapide de transformer un nom de fichier en nom de
fichier UNC

Exemple G:\TOTO.DOC => \\SERVEURG\RESSOURCEG\TOTO.DOC

Il me semble qu'il existe une fonction dans les API mais si qqun l'a déja
fait, c'est aussi bien....


Emmanuel

8 réponses

Avatar
Raymond
Bonjour.

Si tous les fichiers sont de cette structure, tu peux faire:
Dim Chemin As String
Dim newChemin As String
Chemin = "G:TOTO.DOC"
newChemin = "SERVEUR" & Left(Chemin, 1) _
& "RESSOURCE" & Left(Chemin, 1) _
& Mid(Chemin, 3)
MsgBox newChemin

si les chemins sont de différentes structures type c:...... , il faudra
procéder autrement.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Emmanuel CHONION" a écrit dans le message de
news:
Je cherche un moyer rapide de transformer un nom de fichier en nom de
fichier UNC

Exemple G:TOTO.DOC => SERVEURGRESSOURCEGTOTO.DOC

Il me semble qu'il existe une fonction dans les API mais si qqun l'a déja
fait, c'est aussi bien....


Emmanuel





Avatar
Emmanuel CHONION
Merci de ton aide, mais en fait je cherche à utiliser l'équivalent d'une
fonction très pratique qui existe dans Delphi pour faire cela de façon
automatique.

J'ai trouvé la fonction API correspondante mais pour l'instant je n'arrive
pas à l'interfacer en VBA.

Si qqn l'a déjà fait, je suis preneur
Avatar
Raymond
Tu as pris laquelle exactement ?

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Emmanuel CHONION" a écrit dans le message de
news:
Merci de ton aide, mais en fait je cherche à utiliser l'équivalent d'une
fonction très pratique qui existe dans Delphi pour faire cela de façon
automatique.

J'ai trouvé la fonction API correspondante mais pour l'instant je n'arrive
pas à l'interfacer en VBA.

Si qqn l'a déjà fait, je suis preneur




Avatar
Emmanuel CHONION
WNetGetUniversalName dans mpr
Avatar
Raymond
Je n'ai pas cette référence et je ne la trouve pas dans mes documents.
peux-tu me la passer STP ?

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Emmanuel CHONION" a écrit dans le message de
news:
WNetGetUniversalName dans mpr




Avatar
Emmanuel CHONION
J'ai trouvé, j'avais juste un pb sur 1 des paramètres :

Private Const UNIVERSAL_NAME_INFO_LEVEL = 1
Private Const REMOTE_NAME_INFO_LEVEL = 2
Private Const UNIVERSAL_NAME_BUFFER_SIZE = 255
Private Const NO_ERROR = 0

Private Type UNIVERSAL_NAME_INFO
lpUniversalName As Long
buf(UNIVERSAL_NAME_BUFFER_SIZE - 4) As Byte
End Type

Private Declare Function WNetGetUniversalName Lib "mpr" Alias _
"WNetGetUniversalNameA" (ByVal lpLocalPath As String, ByVal dwInfoLevel As _
Long, lpBuffer As Any, lpBufferSize As Long) As Long

Public Function getUncFileName(fileName As String) As String
Dim size As Long
Dim uni As UNIVERSAL_NAME_INFO
Dim startLoc As Long
Dim ret As Long

fileName = Trim(fileName)

size = UNIVERSAL_NAME_BUFFER_SIZE
If fileName <> "" And Mid(fileName, 2, 1) = ":" Then
ret = WNetGetUniversalName(fileName, UNIVERSAL_NAME_INFO_LEVEL, uni,
size)
if ret = NO_ERROR then
startLoc = uni.lpUniversalName - VarPtr(uni) - 3
getUncFileName = Mid$(StrConv(uni.buf, vbUnicode), startLoc, _
InStr(StrConv(uni.buf, vbUnicode), vbNullChar) - 1)
else
getUncFileName = fileName
end if
Else
getUncFileName = fileName
End If

End Function
Avatar
Raymond
Bonsoir.

j'ai trouvé cette fonction, elle n'est pas supportée par windows mais
seulement par windows NT et windows 2000 server. ce qui parait logique
compte tenu de son nom. elle ne provoque pas d'erreur mais retourne un code
qui fait que le paramètre envoyée est intégralement retourné.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Emmanuel CHONION" a écrit dans le message de
news:
J'ai trouvé, j'avais juste un pb sur 1 des paramètres :



Avatar
Emmanuel CHONION
Ca marche aussi très bien sous W2000 Pro et XP, ce qui me suffit dans le
contexte que j'utilise.

Ca va me servir à référencer des documents partagés en réseau sur une base
commune. Dans ce cas, l'utilisation des UNC est plus que recommandée parce
que les lettres c'est toujours aléatoire.

Au plaisir,

Emmanuel