Recherche de fichier, menu, kill, select case

Soyez le premier à donner votre avis sur cette source.

Vue 10 513 fois - Téléchargée 1 124 fois

Description

Voila, mon petit programme vous permettra de comprendre comment rechercher un fichier, comment supprimer un ou plusieur fichier a partir d'une liste, l'utilisation des case, des combo box. Et son utilité et simple il trouvent des fichiers "nuisibles " et vous propose de les supprimés.

Vous aurez besoin de :
1 Comboliste nommée : comboliste
1 label nommé : lbldescription
3 boutons :
Rechercher : cmdrecherche
Supprimer : cmdsuppr
Tout supprimer : cmdsupprall
1 liste nommé lstcherche
1 autre labal montrant le path de la recherche nommé : Label1

Source / Exemple :


'Ici, la déclaration pour recherchez les fichiers.
Sub FilesSearch(DrivePath As String, Ext As String)

Dim XDir() As String
Dim TmpDir As String
Dim FFound As String
Dim DirCount As Integer
Dim X As Integer
' 'Initialises les Variables
DirCount = 0
ReDim XDir(0) As String
XDir(DirCount) = ""

If Right(DrivePath, 1) <> "\" Then
DrivePath = DrivePath & "\"
End If
frmprincipal.Label1 = DrivePath

' 'Entrée le code pour voir la direction désiré
' Example: Form1.label2 = DrivePath
' 'Cherche pour toute les directions et fichier dnas la varible
' 'XDir()

DoEvents
TmpDir = Dir(DrivePath, vbDirectory)

Do While TmpDir <> "" Or (Arret = True)

If TmpDir <> "." And TmpDir <> ".." Then

If (GetAttr(DrivePath & TmpDir) And vbDirectory) = vbDirectory Then
XDir(DirCount) = DrivePath & TmpDir & "\"
DirCount = DirCount + 1
ReDim Preserve XDir(DirCount) As String
End If

End If

TmpDir = Dir
Loop

' 'Cherche les fichiers possédant l'extention voulu
FFound = Dir(DrivePath & Ext)

Do Until FFound = ""

frmprincipal.lstCherche.AddItem DrivePath & FFound

' 'Le code présent prévoit l'action de fichier trouvédans
' 'la variable FFound.
' 'Example: Form1.list1.AddItem DrivePath & FFound
FFound = Dir
Loop

'Recherche récursives dans toutes les sous direction
For X = 0 To (UBound(XDir) - 1)
FilesSearch XDir(X), Ext
Next X

If X = (UBound(XDir)) Then

End If

End Sub

'--------Le menu ----
Private Sub apropo_Click()
frmAbout.Show  'apparition de la form a propos
End Sub

Private Sub lstListe_Click()
End Sub

Private Sub cmbliste_Change()
End Sub

Private Sub cmdarréter_Click()
End Sub

Private Sub cmdrecherche_Click()
'--------Suivant la case selectioné dans ma combo liste, le fichier a chercher 'sera différent.
Select Case comboliste.Text 
Case ".log"
Call FilesSearch("C:\", "*.log")
Case ".lgc"
lstCherche.Clear
Call FilesSearch("C:\Windows\APPLOG", "*.lgc")
Case ".txt"
lstCherche.Clear
Call FilesSearch("C:\", "*log*.txt")
Case "netbios"
lstCherche.Clear
Call FilesSearch("C:\Windows\", "lmhosts")
Case ".sav"
lstCherche.Clear
Call FilesSearch("C:\", "*log*.sav")
Case "Eventsystem"
lstCherche.Clear
Call FilesSearch("C:\", "EventSystem.*")
Case "Internetlog"
lstCherche.Clear
Call FilesSearch("C:\Windows\Internet Logs", "*.ldb")
Case "Internetlog2"
lstCherche.Clear
Call FilesSearch("C:\Windows\Internet Logs", "*.RDB")
Case "Prefetch"
lstCherche.Clear
Call FilesSearch("C:\Windows\Prefetch\", "*.pf")
Case "fiz"
lstCherche.Clear
Call FilesSearch("C:\", "fiz*")
Case "backup"
lstCherche.Clear
Call FilesSearch("C:\", "*.backup")
End Select
End Sub

Private Sub cmdsuppr_Click()
On Error GoTo erreur      '---------- Et oui les erreurs sa arrive
Kill (lstCherche.List(lstCherche.ListIndex)) '----suppression fichier  selectionné 
lstCherche.RemoveItem (lstCherche.ListIndex) - suppression du fichier dans
'-----------la liste
Exit Sub
erreur:  MsgBox ("Impossible de supprimé le fichier : " & vbCrLf & " Le fichier à supprimer et utilisé par un autre programme." & vbCrLf & "Pour rémédier à cela fermer toutes les applications en cour.")
lstCherche.RemoveItem (lstCherche.ListIndex)
End Sub

Private Sub cmdsupprall_Click() '--------- pour tout supprimé
On Error GoTo erreur
For i = 0 To lstCherche.ListCount - 1 '-------- supprime tous les fichiers 1par 1
Kill (lstCherche.List(i))
lstCherche.RemoveItem (i)
Next i
Exit Sub
erreur:  MsgBox ("Impossible de supprimé un des fichiers : " & vbCrLf & " Un des fichiers à supprimer et utilisé par un autre programme." & vbCrLf & "Pour rémédier à cela fermer toutes les applications en cour.")
lstCherche.RemoveItem (i)
End Sub

Private Sub comboliste_Click()
'------Suivant la case de ma combo liste selectionné l'explication dans mon 
' ------- label sera differente
Select Case comboliste.Text
Case ".log"
MsgBox ("Attention : Les fichiers supprimés ne pourront êtres retrouvés !!!")
lbldescription.Caption = "Les fichers .log sont installé par les applications."
Case ".lgc"
MsgBox ("Attention : Les fichiers supprimés ne pourront êtres retrouvés !!!")
lbldescription.Caption = "Les fichers .lgc sont installé par windows dans le repertoir applog."
Case ".txt"
MsgBox ("Attention : Les fichiers supprimés ne pourront êtres retrouvés !!!")
lbldescription.Caption = "Les fichiers .txt sont des log mais en version non crypté."
Case "netbios"
MsgBox ("Attention : Les fichiers supprimés ne pourront êtres retrouvés !!!")
lbldescription.Caption = "Lors d'une connection par netbios un fichier lmhosts et créé celui ci contient l'adresse ip du pc distant."
Case ".sav"
MsgBox ("Attention : Les fichiers supprimés ne pourront êtres retrouvés !!!")
lbldescription.Caption = "Les fichier .sav sont des sauvegardes de log."
Case "Eventsystem"
MsgBox ("Attention : Les fichiers supprimés ne pourront êtres retrouvés !!!")
lbldescription.Caption = "C'est le log du system d'evenement."
Case "Internetlog"
MsgBox ("Attention : Les fichiers supprimés ne pourront êtres retrouvés !!!")
lbldescription.Caption = "Se sont les logs du trafic internet."
Case "Internetlog2"
MsgBox ("Attention : Les fichiers supprimés ne pourront êtres retrouvés !!!")
lbldescription.Caption = "Se sont les logs du trafic internet. (Win XP)"
Case "Prefetch"
MsgBox ("Attention : Les fichiers supprimés ne pourront êtres retrouvés !!!")
lbldescription.Caption = "Des raccourcis inutiles contenant les noms de vos applications. (Win XP)"
Case "fiz"
MsgBox ("Attention : Les fichiers supprimés ne pourront êtres retrouvés !!!")
lbldescription.Caption = "Des fichiers enregistrant les pages web visités. (Win XP) "
Case "backup"
MsgBox ("Attention : Les fichiers supprimés ne pourront êtres retrouvés !!!")
lbldescription.Caption = "Des fichiers de sauvegardes"

End Select
End Sub

Private Sub Quitter_Click()
Unload Me '------- fermeture de la form
End
End Sub

Conclusion :


Voila en fait le programme effectue une recherche sur tous le disque dur, puis supprime ou le fichier séléctionné ou tous les fichiers de la liste, en rapportant les erreurs s'il y en a.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
1
Sa serez bien que tu penses à regarder les dates de parution des codes !!! ma source 2003 celle que tu dis 2004 donc je crois que la mienne est plus ancienne que celle que tu dis, donc à moins que je ne sache pas compté, l'erreur n'est pas à moi !!!!

Pour l'ajout des signatures, je n'ai pas fait se logiciel pour les virus, mais pour les log, autrement j'ai ajouté récement deux autre sources une pour les spyware et une pour les keyloggers :

spyware :
http://www.vbfrance.com/code.aspx?ID=26618

keylogger :
http://www.vbfrance.com/code.aspx?ID=26738

Si ça t'interresse .....

Allé bon code
Messages postés
2
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
14 octobre 2004

Salut :-)

Ta source proposée concernant la recherche, suppression de fichier ressemble fortement à celle déposée sur le site, je pense notamment à celle de l'AntiVirus de la source http://www.vbfrance.com/code.aspx?ID=21418

Il serait interessant d'y rajouter à ce titre les signatures des fichiers malveillants afin de détecter des virus...

Merci

a+
m4phkrt
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Salut,
ce qui serait bien c'est que tu mettes à quoi servent tes variables, ce serait beaucoup plus facile pour comprendre.
Sinon à part ça merci de l'avoir mis, bonne source et bonne méthode de recherche.

YOYO269
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012

Salut
Un petit rappel du Manuel Access concernant la fonction dir et la récursivité !!! :
Il est cependant impossible d'appeler la fonction Dir de manière récursive. Les appels Dir comportant l'attribut vbDirectory ne renvoient pas continuellement les sous-répertoires.

Finalement, j'ai du utiliser les OCX des DriveListBox/DirListBox/et DirListFile pour les recherches approfondies. C'est plus rapide et surtout plus clean pour le mode récursif... On peut également appliquer des motifs pour les recherche.

;-)
salut
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012

Bonjour,
Je suis en train de rappatrier une application que j'ai développé sous access, et les modules de recherche ne font pas appelle aux mêmes méthodes.
Je présume que des définitions "de type external" auraient pu fonctionner, mais je souhaite que cet outil soit le plus autonome possible.
Donc je suis bien content de trouver ton exemple.
D'autre part pour ceux qui ne connaissent pas bien la récursivité, c'est un excellent exemple de cas pratique.
Bravo et merci c'est ce qui me manquait pour avancer !!!! :-)

PS ta combolist est une excellente idée à réutiliser ... Tu devrais pour toi en revoir la conception en imaginant n'avoir aucune répétition.
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.