2009-07-29 13 views
60

sto usando:file esiste in base al nome del file di pattern

File.Exists(filepath) 

Quello che vorrei fare è anzichè questo per un motivo, perché la prima parte del nome del file cambia.

Per esempio: il file potrebbe essere

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

Come posso verificare se il file esiste basa su una sorta di modello di ricerca?

risposta

98

Si può fare un elenco di directory con un motivo per controllare i file

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

Se si utilizza .NET Framework 4 o superiore si potrebbe usare Directory.EnumerateFiles

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

questo potrebbe essere più efficiente rispetto all'utilizzo di Directory.GetFiles poiché si evita l'iterazione attraverso gli intero elenco di file .

+0

La tua versione di codice fa la stessa cosa, ma nascosta. Non c'è modo di ottenere tutti i file che corrispondono al modello solo dal nulla. – Kostadin

+0

@Kostadin: mancare una risposta prima ... non vuole ottenere tutti i file corrispondenti a un modello, vuole sapere se c'è QUALSIASI –

Problemi correlati