Soyez le premier à donner votre avis sur cette source.
Vue 9 009 fois - Téléchargée 1 443 fois
'utilisation des API FindFirstFile , FindNextFile etc........en récurcif..... '-------------------------------------------------------- '---La fonction Rechercher : --- '--- Cette fonction recherche tous les fichiers dans --- '--- le répertoire spécifié et ses sous-repertoires --- '--- Elle retourne le nombre d'occurences trouvées --- '-------------------------------------------------------- Public Function Rechercher(Chemin As String, FichierR As String, ResultatRecherche As ListeFichier) As Long '---Déclaration des variables--- Dim lpFindFileData As WIN32_FIND_DATA Dim hFindFile As Long Dim lgRep As Long Dim CheminRep As String '---Recherche tous les fichiers demandés dans le répertoire Chemin--- lpFindFileData.dwFileAttributes = &H10 Dim FicTmp As String '---récupération du premier fichier du répertoire hFindFile = FindFirstFile(Chemin & FichierR, lpFindFileData) If hFindFile <> INVALID_HANDLE_VALUE Then Do '---on récupère le nom du fichier FicTmp = Mid$(lpFindFileData.cFileName, 1, InStr(lpFindFileData.cFileName, Chr$(0)) - 1) If FicTmp <> ".." And FicTmp <> "." And (lpFindFileData.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) = 0 Then '---si on tombe sur un fichier , on mémorise le nom du du fichier dans un tableau '---ainsi que le répertoire ou il se situe ResultatRecherche.Nombre = ResultatRecherche.Nombre + 1 '---un fichier ajouté ReDim Preserve ResultatRecherche.Chemin(1 To ResultatRecherche.Nombre) ReDim Preserve ResultatRecherche.Fichiers(1 To ResultatRecherche.Nombre) ResultatRecherche.Chemin(ResultatRecherche.Nombre) = Chemin '---chemin du fichier ResultatRecherche.Fichiers(ResultatRecherche.Nombre) = lpFindFileData '---nom du fichier ' Initialise lpFindFileData (Variable texte uniquement) lpFindFileData.cAlternate = String$(14, 0) '---on remet à blanc lpFindFileData.cFileName = String$(MAX_PATH, 0) '---on remet à blanc End If Loop Until FindNextFile(hFindFile, lpFindFileData) = 0 'on récupère le prochain fichier End If '---on arrète de scrutter le répertoire en court FindClose hFindFile '---Recherche dans les sous-répertoires--- hFindFile = FindFirstFile(Chemin & "*.*", lpFindFileData) If (hFindFile <> INVALID_HANDLE_VALUE) Then Do '---on cherche un sous-répertoire If (lpFindFileData.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY Then '---un sous-répertoire a été trouvé '---on récupère le nom du sous répertoire CheminRep = Mid$(lpFindFileData.cFileName, 1, InStr(1, lpFindFileData.cFileName, Chr$(0)) - 1) '---attention il ne faut pas prendre en compte les valeurs "." et ".." '---considérées comme des répertoires mais qui ne nous intéressent pas If (CheminRep <> ".") And (CheminRep <> "..") Then CheminRep = Chemin & CheminRep & "\" '---on relance la fonction Rechercher pour récupérer les fichiers du sous répertoire '---voici la récurcivité!!!! '---on va alors récupérer tous les fichiers du sous répertoire mais on va alors rechercher '---si dans ce sous répertoire il y a d'autres sous répertoires etc... Rechercher = Rechercher(CheminRep, FichierR, ResultatRecherche) 'on récupère la main après avoir vérifier le contenu du sous répertoire End If End If '---et on continue pour tester un éventuel autre sous-répertoire Loop Until FindNextFile(hFindFile, lpFindFileData) = 0 End If '---voilà on a vérifier tous les sous-répertoires FindClose hFindFile '---on retourne le nombre de fichiers trouvées Rechercher = ResultatRecherche.Nombre End Function
7 mars 2004 à 00:47
merci a toi ;-)
30 avril 2004 à 08:50
C'est bien de faire connaitre les fonctions API par des exemples de code, mais c'est encore mieu de donner l'origine de cette source. Tu as vu juste en te doutant qu'elle existait déjà vu que c'est mot pour mot la source contenue dans le fichier APIDOCVB.CHM qui regroupe plus d'un centaine de fonctions API avec des exemples pour chacune et que l'on peut télécharger gratuitement sur l'URL suivante : http://docvb.free.fr/api.php.
30 avril 2004 à 12:36
11 juin 2004 à 15:40
Pas de déclaration d'api
pas de déclaration de constante
on sait pas à quoi correspondent les variables
c'est quoi INVALID_HANDLE_VALUE ?????
et ListeFichier, ya pas de déclaration de type ???
les commentaires sont vraiment succints.
En plus je crois avoir déjà vu ce post mais franchement plus clair, avec toutes les déclaration.
déjà ça, ça m'aurrait aidé!!
Là j'avance pas d'un pouce.
11 juin 2004 à 16:01
http://www.vbfrance.com/forum.v2.aspx?ID=235428
qui lui m'a aidé.
+++
ps:Je ne critique pas l'intension qui est tout à fait louable :)))
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.