OVH Cloud OVH Cloud

repertoire

2 réponses
Avatar
lou
bonjour
je voudrais afficher la lettre du lecteur qui contiens un certain repertoire
(ex: DataTables)dont je ne connais pas a l'avance sur quelle partition il se
trouve
merci
lou

2 réponses

Avatar
François Picalausa
Bonjour/soir,

Un dossier pourrait se trouver sur plusieurs lecteurs.
Donc, on peut commencer par retrouver tous les lecteurs et ensuite tester si
le chemin existe
Option Explicit

Private Declare Function GetLogicalDriveStrings _
Lib "kernel32.dll" _
Alias "GetLogicalDriveStringsA" _
( _
ByVal nBufferLength As Long, _
ByVal lpBuffer As String _
) _
As Long
'On peut utiliser GetDriveType pour ne chercher
'que sur les disque durs par exemple

Private Sub Command1_Click()
Dim Drive As String, RC As Long
Dim Drives() As String
Dim i As Long

'On retrouve la longueur de la chaine
RC = GetLogicalDriveStrings(0, vbNullString)
If RC Then 'réussite de l'opération?
'On récupère les lecteurs
Drive = String$(RC, vbNullChar)
RC = GetLogicalDriveStrings(RC, Drive)

If RC Then 'réussite de l'opération?
'On supprime le terminateur inutile
Drive = Left$(Drive, Len(Drive) - 1)

'On divise la chaine
Drives = Split(Drive, vbNullChar)

Const FolderPath As String = "WindowsSystem"

'On teste l'existance pour chaque lecteur
For i = LBound(Drives) To UBound(Drives)
If FolderExists(Drives(i) & FolderPath) Then
MsgBox "Le dossier est présent sur le lecteur " &
Drives(i)
End If
Next i
End If
End If
End Sub

Private Function FolderExists(strPAth As String) As Boolean
On Error Resume Next
FolderExists = GetAttr(strPAth) And vbDirectory
End Function

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"lou" a écrit dans le message de
news:402e87a9$0$7039$
bonjour
je voudrais afficher la lettre du lecteur qui contiens un certain
repertoire (ex: DataTables)dont je ne connais pas a l'avance sur
quelle partition il se trouve
merci
lou


Avatar
lou
ça marche un grand merci


"François Picalausa" a écrit dans le message de
news:
Bonjour/soir,

Un dossier pourrait se trouver sur plusieurs lecteurs.
Donc, on peut commencer par retrouver tous les lecteurs et ensuite tester


si
le chemin existe
Option Explicit

Private Declare Function GetLogicalDriveStrings _
Lib "kernel32.dll" _
Alias "GetLogicalDriveStringsA" _
( _
ByVal nBufferLength As Long, _
ByVal lpBuffer As String _
) _
As Long
'On peut utiliser GetDriveType pour ne chercher
'que sur les disque durs par exemple

Private Sub Command1_Click()
Dim Drive As String, RC As Long
Dim Drives() As String
Dim i As Long

'On retrouve la longueur de la chaine
RC = GetLogicalDriveStrings(0, vbNullString)
If RC Then 'réussite de l'opération?
'On récupère les lecteurs
Drive = String$(RC, vbNullChar)
RC = GetLogicalDriveStrings(RC, Drive)

If RC Then 'réussite de l'opération?
'On supprime le terminateur inutile
Drive = Left$(Drive, Len(Drive) - 1)

'On divise la chaine
Drives = Split(Drive, vbNullChar)

Const FolderPath As String = "WindowsSystem"

'On teste l'existance pour chaque lecteur
For i = LBound(Drives) To UBound(Drives)
If FolderExists(Drives(i) & FolderPath) Then
MsgBox "Le dossier est présent sur le lecteur " &
Drives(i)
End If
Next i
End If
End If
End Sub

Private Function FolderExists(strPAth As String) As Boolean
On Error Resume Next
FolderExists = GetAttr(strPAth) And vbDirectory
End Function

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"lou" a écrit dans le message de
news:402e87a9$0$7039$
> bonjour
> je voudrais afficher la lettre du lecteur qui contiens un certain
> repertoire (ex: DataTables)dont je ne connais pas a l'avance sur
> quelle partition il se trouve
> merci
> lou