Recherche de dossiers

Résolu
cs_ledebutant07 Messages postés 15 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 22 février 2007 - 11 déc. 2006 à 16:44
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 11 déc. 2006 à 20:15
Bonjour,


Je suis sous VB6


Je veux avec FileSystemObjet chercher si un ou des répertoires existe.



exemple:


 en indiquant "999999" dans une textBox je veux savoir si il existe des répertoires appelés


999999-01-yw-wl


ou    999999-02-yw


ou    999999-02-acp 


Si j'écris   : If  Fso.FolderExists("999999*") ça marche pas


Si j'écris : if Fso.FolderExists("999999-01-yw-wl") je trouve que le dossier 999999-01-yw-wl


je veux savoir si  tous les répertoires qui contiennent 999999 dans le nom du dossier existent.


Comment pui-je faire


Merci d'avance pour votre aide.


 


Cordialement


ledebutant07 

3 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
11 déc. 2006 à 16:58
Salut,
Si l'utilisation du filesystemobject n'est pas obligatoire pour toi tu peux essayer ceci

Dim RepRacine As String 
Dim Filtre As String 
Dim RepTmp As String 
RepRacine =  "C:" 
Filtre = "999999*" 

'récupère la premiere occurence
'correspondant au filtre
RepTmp =  Dir (RepRacine & Filtre, vbDirectory) 
While RepTmp <> "" 
    MsgBox RepTmp 
    'recupere l'occurence suivante
    RepTmp  = Dir 
Wend  

@+: Ju£i?n
Pensez: Réponse acceptée
3
drikce06 Messages postés 2237 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 11
11 déc. 2006 à 16:56
Salut fais un tour sur codyx pour parcourir les répertoires (snippet de jrivet) et vérifie avec InStr pour savoir s'il y a 9999999 dans le nom du dossier!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 26
11 déc. 2006 à 20:15
 Bonsoir à tous

L'exemple, ci-dessous, permet de trouver les répertoires contenant "2006".
La recherche s'effectue sur tous les disks durs du server local.

Dim ShellO: Set ShellO = CreateObject("WScript.Shell")
Dim Fso: Set Fso = CreateObject("Scripting.FileSystemObject")
Dim Srepert : Srepert = "2006"
'Recherche de l'expression Srepert sur tous les disks durs
Dim lecteur : Set lecteur = Fso.Drives
For Each disque in lecteur If disque.IsReady True And disque.DriveType 2 Then
       'MsgBox disque.DriveLetter & ":"
    'Lister l'arborescence du dossier
       ListerDossier disque.DriveLetter & ":", Fichier, Liste
 End If
Next



Set ShellO Nothing: Set Fso Nothing: Set Fichier = NothingSet ObjRep Nothing: Set ObjSubRep Nothing: Set lecteur = Nothing
MsgBox  Liste,,"Répertoire(s) contenant l'expression " & Srepert



Function ListerDossier(Schemin, Fichier, Liste) 'Lister l'arborescence du dossier
On Error Resume Next
Dim ObjRep: Set ObjRep = Fso.GetFolder(Schemin) 'dossier
Dim ObjSubRep: Set ObjSubRep = ObjRep.SubFolders 'sous-dossiers
Dim ObjSubRepItem
    For Each ObjSubRepItem In ObjSubRep 'Traiter chaque sous-dossiers
        ListerDossier ObjSubRepItem.Path, Fichier, Liste 'traiter les sous-dossiers
        'MsgBox ObjSubRepItem.Path
         If InStr(1, ObjSubRepItem.Path, Srepert) > 0 Then Liste = Liste &vbCrLf& ObjSubRepItem.Path           'If Right(ObjSubRepItem.Path, Len(Srepert)) Srepert Then   Liste Liste &vbCrLf& ObjSubRepItem.Path
    Next
End Function  

jean-marc
0