GetFiles () - Motif de recherche
Je suis l'aide de la ligne suivante pour retourner des fichiers spécifiques...
FileInfo file in nodeDirInfo.GetFiles("*.sbs", option)
Mais il y a d'autres fichiers dans le répertoire avec l'extension ".sbsar", et il commence à faire trop. Comment puis-je différencier ".sbs" et ".sbsar" dans le modèle de recherche?
source d'informationauteur topofsteel
Vous devez vous connecter pour publier un commentaire.
Essayer cela, filtrés à l'aide de l'extension de fichier.
Le problème que vous rencontrez est un limitation du modèle de recherche, dans l'API Win32.
Ma solution est de filtrer manuellement les résultats, à l'aide de Linq:
C'est le comportement de l'API Win32 (
FindFirstFile
) qui est en dessousGetFiles()
qui se reflète sur vous.Vous aurez besoin pour faire votre propre filtrage si vous devez utiliser
GetFiles()
. Par exemple:Ou de façon plus efficace:
Noter que j'utilise
StringComparison.InvariantCultureIgnoreCase
à composer avec le fait que les noms de fichiers Windows sont insensibles à la casse.Si la performance est un problème, c'est que si la recherche a pour les répertoires de processus avec un grand nombre de fichiers, il est plus efficace d'effectuer le filtrage à deux reprises: une fois dans l'appel à
GetFiles
ouEnumerateFiles
et une fois de nettoyer les fichiers indésirables noms. Par exemple:Sa mentionnés dans docs