VBFILEFIND : RECHERCHE DE FICHIERS POUR REMPLACER CELLE DE WINDOWS

cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 21 nov. 2010 à 11:58 - Dernière réponse : DX90 40 Messages postés dimanche 24 janvier 2010Date d'inscription 14 septembre 2018 Dernière intervention
- 14 sept. 2018 à 02:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

http://codes-sources.commentcamarche.net/source/52496-vbfilefind-recherche-de-fichiers-pour-remplacer-celle-de-windows

Afficher la suite 
cs_Patrice99 1222 Messages postés jeudi 23 août 2001Date d'inscription 9 septembre 2018 Dernière intervention - 19 mars 2017 à 10:12
Version 1.07 : Sauvegarde de la taille des colonnes, notamment.
Whismeril 12216 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 12 novembre 2018 Dernière intervention > cs_Patrice99 1222 Messages postés jeudi 23 août 2001Date d'inscription 9 septembre 2018 Dernière intervention - 19 mars 2017 à 19:40
Bonjour,
pour la recherche sur les noms de fichiers, il y a peut être plus simple en combinant un directory.getFies, qui prend en paramètre un pattern utilisant les joker * et ? et une requête Linq pour les fichiers exclus.

Un exemple vite fait
Edit exemple amélioré
Dim exclusions() As String = { "pas ca", "niCeluilà" }
Dim ouChercher As String = "C:\Temp"
Dim pattern As String = "*a*.txt"

Dim resultats() As String = (
    From f In Directory.GetFiles(ouChercher, pattern)
    Where (Not exclusions.Any(Function(ex) ExclureFichier(ex,f)))
    Select f).ToArray()


''' <summary>
''' Methode qui supprime les accents et autres signes diacritiques, source http://www.developpez.net/forums/d286030/dotnet/langages/csharp/supprimer-accents-lettre/
''' </summary>
''' <param name="stIn"></param>
''' <returns></returns>
Private Function RemoveDiacritics(ByVal stIn As String) As String
	Dim stFormD As String = stIn.Normalize(NormalizationForm.FormD)
	Dim sb As New StringBuilder()

	For ich As Integer = 0 To stFormD.Length - 1
		Dim uc As UnicodeCategory = CharUnicodeInfo.GetUnicodeCategory(stFormD.Chars(ich))
		If uc <> UnicodeCategory.NonSpacingMark Then
			sb.Append(stFormD.Chars(ich))
		End If
	Next ich

	Return (sb.ToString().Normalize(NormalizationForm.FormC))
End Function

Private Function ExclureFichier(ByVal Critere As String, ByVal Fichier As String, Optional ByVal SensibleCasse As Boolean = False, Optional ByVal SensibleDiacritique As Boolean = False) As Boolean
	If Not SensibleCasse Then
		'on passe tout en minuscule, comme ça tout le monde à la même casse
		Critere = Critere.ToLower()
		Fichier = Fichier.ToLower()
	End If

	If Not SensibleDiacritique Then
		'on enlève tous les signes diacritiquess (accents, cédilles etc..)
		Critere = RemoveDiacritics(Critere)
		Fichier = RemoveDiacritics(Fichier)
	End If

	Return System.IO.Path.GetFileNameWithoutExtension(Fichier).Contains(Critere)

End Function


cs_Patrice99 1222 Messages postés jeudi 23 août 2001Date d'inscription 9 septembre 2018 Dernière intervention > Whismeril 12216 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 12 novembre 2018 Dernière intervention - 1 avril 2017 à 09:12
Oui, pas mal, je vais peut être inclure ça dans une prochaine version, merci.
cs_Patrice99 1222 Messages postés jeudi 23 août 2001Date d'inscription 9 septembre 2018 Dernière intervention - 1 avril 2017 à 09:14
Version 1.08 : Iconisation : ignorer taille des colonnes
DX90 40 Messages postés dimanche 24 janvier 2010Date d'inscription 14 septembre 2018 Dernière intervention - 14 sept. 2018 à 02:58
Salut

J'utilise ton logiciel depuis 2010 (V1.01) et c'est toujours un bonheur de s'en servir, je suis venu récupérer ta dernière release.
Ce qui serait pas mal ça serait quelque checkbox des extensions à inclure ou exclure. Je sais presque toujours dans quel fichier cherché mais dans le cas où je l'ignore, que dois-je entrer ? *.exe, *.img, *.iso ?
Car j'ai essayé cela dans exclure et en fait ça ne m'a sorti que des résultats avec ce que je ne voulais pas ...

Merci bien,
Cdlt
DX90
Commenter la réponse de cs_ghuysmans99

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.