Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1564 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Comparer deux arborescence de répertoires

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comparer deux arborescence de répertoires

n°1707400
madmartiga​n
Desperate Houseman
Posté le 25-03-2008 à 15:39:29  profilanswer
 

Salut,
 
j'ai écrit un script qui doit parcourir deux arborescence (via des chemins réseau).
Le but est de déterminer si les deux arbo contiennent au moins les mêmes noms de fichiers et répertoires.
 
Voici la fonction créée pour cela :
 

Function RepComp(sChemin1, sChemin2) 'Count files in the folder and sub-folders
 Dim ObjRep1: Set ObjRep1 = oFSO.GetFolder(sChemin1) 'folders source
 Dim ObjRep2: Set ObjRep2 = oFSO.GetFolder(sChemin2) 'folders dest
 Dim ObjSubRep1: Set ObjSubRep1 = ObjRep1.SubFolders 'sub-folders of source
 Dim ObjSubRep2: Set ObjSubRep2 = ObjRep2.SubFolders 'sub-folders of source
 Dim ObjSubRep1Item
 Dim ObjSubRep2Item
 Dim ObjSubRepItem
 'ObjSubRep2Item = ObjRep2.Path
 For Each ObjSubRep1Item In ObjSubRep1 'for each sub-folder  
  ObjSubRep2Item = ObjRep2.Path & "\" & ObjSubRep1Item.Name
  IF oFSO.FolderExists(ObjSubRep2Item) THEN
   'wscript.echo vbTab & Err.Number & ": " & ObjSubRep1Item.Path & " --- " & ObjSubRep2Item
   RepComp ObjSubRep1Item.Path, ObjSubRep2Item  'traiter les sous-dossiers  
  ELSE
   logfile.writeline VbCrLf & vbTab & "Error : folder " & ObjSubRep1Item.Path & " does not exist in " & ObjRep2.Path
  END IF
 Next  
 For Each ObjSubRep2Item In ObjSubRep2 'for each sub-folder  
  ObjSubRepItem = ObjRep1.Path & "\" & ObjSubRep2Item.Name
  IF oFSO.FolderExists(ObjSubRepItem) THEN
   'wscript.echo vbTab & Err.Number & ": " & ObjSubRepItem & " --- " & ObjSubRep2Item
   RepComp ObjSubRep2Item.Path, ObjSubRepItem  'traiter les sous-dossiers  
  ELSE
   logfile.writeline VbCrLf & vbTab & "Error : folder " & ObjSubRepItem & " does not exist in " & ObjRep1.Path
  END IF
 Next  
 '  
 Dim ObjRepFind: Set ObjRepFind = oFSO.GetFolder(sChemin1) 'folder  
 Dim ObjSubFile: Set ObjSubFile = ObjRep1.Files 'Files
 Dim ObjSubFileItem  
 For Each ObjSubFileItem In ObjSubFile 'For each FILE in the folder  
  If oFSO.FileExists(ObjRep2.Path & "\" & ObjSubFileItem.Name) Then
   'Wscript.Echo VbCrLf & vbTab & vbTab & vbTab & "-->" & ObjSubFileItem.Name' & " " & ObjSubFileItem.Path
  Else
   logfile.writeline VbCrLf & vbTab & "Error : File " & ObjSubFileItem.Path & " does not exist in " & ObjRep2.Path
  End If
'   filecpt = filecpt + 1
 Next
 Set ObjSubFile = ObjRep2.Files 'Files
 For Each ObjSubFileItem In ObjSubFile 'For each FILE in the folder  
  If oFSO.FileExists(ObjRep1.Path & "\" & ObjSubFileItem.Name) Then
   'Wscript.Echo VbCrLf & vbTab & vbTab & vbTab & "<--" & ObjSubFileItem.Name' & " " & ObjSubFileItem.Path
  Else
   logfile.writeline VbCrLf & vbTab & "Error : File " & ObjSubFileItem.Path & " does not exist in " & ObjRep1.Path
  End If
  'filecpt = filecpt + 1
 Next
 logfile.writeline VbCrLf & "End of file and sub-folders comparison for " & sChemin1 & " and " & sChemin2
End Function


 
Ca marche très très bien sauf que ...
c'est hyper lent !
A chaque dossier j'ai une latence d'environ 3s.
La structure contient environ 400 dossiers: le parcours met donc environ ... 3h.
 
Voyez vous un moyen d'optimiser le bidule ?


---------------
Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...
mood
Publicité
Posté le 25-03-2008 à 15:39:29  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Comparer deux arborescence de répertoires

 

Sujets relatifs
comment comparer deux fichies xmlAfficher une arborescence
[VBA Excel] Déterminer répertoires de configurationsOptimisation Comparer deux colonnes en VBA sous Excel
xml+xsl : résultat en html + parties en arborescence xmlcomparer 2 colonnes et identifier les différences
[batch] copier tous les fichiers anciens avec arborescence[C#/ASP] Arborescence locale
zippage de fichiers et répertoires dans plusieurs fichiers zip (RésoluCreer une page web depuis une arborescence
Plus de sujets relatifs à : Comparer deux arborescence de répertoires


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR