2009-07-29 7 views
60

J'utilise:existe par modèle de nom de fichier

File.Exists(filepath) 

Ce que je voudrais faire est swop cela pour un motif, parce que la première partie des changements de nom de fichier.

Par exemple: le fichier pourrait être

01_peach.xml 
02_peach.xml 
03_peach.xml 

Comment puis-je vérifier si le fichier existe sur la base une sorte de modèle de recherche?

Répondre

98

Vous pouvez faire une liste de répertoire avec un motif pour vérifier les fichiers

string[] files = System.IO.Directory.GetFiles(path, "*_peach.xml", System.IO.SearchOption.TopDirectoryOnly); 
if (files.Length > 0) 
{ 
    //file exist 
} 
49

Si vous utilisez NET Framework 4 ou au-dessus, vous pouvez utiliser Directory.EnumerateFiles

bool exist = Directory.EnumerateFiles(path, "*_peach.xml").Any(); 

Cela pourrait être plus efficace que d'utiliser Directory.GetFiles puisque vous évitez itérer creux la liste complète des fichiers .

+0

Votre version de code fait la même chose, mais cachée. Pas moyen d'obtenir tous les fichiers correspondants à partir de rien. – Kostadin

+0

@Kostadin: manqué de répondre à cela avant ... il ne veut pas obtenir tous les fichiers correspondant à un modèle, il veut savoir si il n'y a pas –

Questions connexes