VBFILEFIND : RECHERCHE DE FICHIERS POUR REMPLACER CELLE DE WINDOWS

Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
- - Dernière réponse : DX90
Messages postés
40
Date d'inscription
dimanche 24 janvier 2010
Dernière intervention
14 septembre 2018
- 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
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Dernière intervention
9 septembre 2018
-
Version 1.07 : Sauvegarde de la taille des colonnes, notamment.
Whismeril
Messages postés
12560
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 janvier 2019
759 > cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Dernière intervention
9 septembre 2018
-
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
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Dernière intervention
9 septembre 2018
> Whismeril
Messages postés
12560
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 janvier 2019
-
Oui, pas mal, je vais peut être inclure ça dans une prochaine version, merci.
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Dernière intervention
9 septembre 2018
-
Version 1.08 : Iconisation : ignorer taille des colonnes
DX90
Messages postés
40
Date d'inscription
dimanche 24 janvier 2010
Dernière intervention
14 septembre 2018
1 -
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.