steph94700
Messages postés2Date d'inscriptionmercredi 4 novembre 2009StatutMembreDernière intervention19 mai 2010
-
19 mai 2010 à 11:15
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024
-
20 mai 2010 à 12:25
Bonjour,
j'ai besoin de lister les exe des sous répertoire pour faire une appli de déploiement semi-automatique. Mais je rencontre un problème de rapidité d'exécution. J'ai essayé d'optimiser le code, et j'ai diminué par deux le temps d'exécution mais c'est pas suffisant. Est ce que qq'un peu me donner un coup de main?
Voici le code :
'******************************************Lister Sous Repertoire***********************************
Public Sub ListerSousRepertoire(ByVal NomRepertoire As String, ByRef Fso)
Dim SubFol, Fi, Fol, Fi2
Dim SubFol1, Fi1, Fol1
'Récupère le répertoire
Set Fol = Fso.GetFolder(NomRepertoire)
'Pour chaque sous répertoire
For Each SubFol In Fol.subfolders
'Récupere le repertoire
Set Fol1 = Fso.GetFolder(SubFol)
'Pour chaque Fichiers du repertoire
For Each Fi1 In Fol1.Files
'écrit le nom dans le fichier si c'est un .bat ou vbs ou mst ou msi ou exe
' If (InStr(1, Fi1, ".bat", 1) > 0) Or (InStr(1, Fi1, ".vbs", 1) > 0) Or (InStr(1, Fi1, ".mst", 1) > 0) Or (InStr(1, Fi1, ".msi", 1) > 0) Or (InStr(1, Fi1, ".exe", 1) > 0) Then
If (InStr(1, Fi1, ".bat", 1) > 0) Then
Fi2 = (Fol1.Name & "" & Fi1.Name)
Exit For
ElseIf (InStr(1, Fi1, ".vbs", 1) > 0) Then
If (InStr(1, Fi2, ".bat", 1) 0) Then Fi2 (Fol1.Name & "" & Fi1.Name)
' ElseIf (InStr(1, Fi1, ".mst", 1) > 0) Then
' If (InStr(1, Fi2, ".bat", 1) 0) And (InStr(1, Fi2, ".vbs", 1) 0) Then Fi2 = (Fol1.Name & "" & Fi1.Name)
ElseIf (InStr(1, Fi1, ".msi", 1) > 0) Then
If (InStr(1, Fi2, ".bat", 1) 0) And (InStr(1, Fi2, ".vbs", 1) 0) And (InStr(1, Fi2, ".mst", 1) = 0) Then Fi2 = (Fol1.Name & "" & Fi1.Name)
ElseIf (InStr(1, Fi1, ".exe", 1) > 0) Then
If (InStr(1, Fi2, ".bat", 1) 0) And (InStr(1, Fi2, ".vbs", 1) 0) And (InStr(1, Fi2, ".mst", 1) = 0) And (InStr(1, Fi2, ".msi", 1) = 0) Then Fi2 = (Fol1.Name & "" & Fi1.Name)
Else
' MsgBox (Fi1 & "c'est pas un exe")
End If
' End If
Next
If Fi2 <> 0 Then List_Appli.AddItem Fi2
Fi2 = 0
Next
'Destruction des object
Set Fi = Nothing
Set Fi1 = Nothing
Set Fi2 = Nothing
Set SubFol = Nothing
Set SubFol1 = Nothing
Set Fol = Nothing
Set Fol1 = Nothing
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 20 mai 2010 à 12:25
Bonjour,
J'ai fait un programme de recherche de fichiers
Ex: 710 Fichiers exe en 0,89 seconde
Si cela vous intéresse allez sur:
http://www.vbfrance.com/codes/RECHERCHER-FICHIERS_45981.aspx vous trouverez le module de recherche que vous pourrez adapter à vos besoins
@+