Datei existiert nach Dateinamenmuster

78

Ich benutze:

File.Exists(filepath)

Ich möchte dies gegen ein Muster austauschen, da sich der erste Teil des Dateinamens ändert.

Zum Beispiel: Die Datei könnte sein

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

Wie kann ich anhand eines Suchmusters überprüfen, ob die Datei vorhanden ist?

J L.
quelle

Antworten:

120

Sie können eine Verzeichnisliste mit einem Muster erstellen, um nach Dateien zu suchen

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

Wenn Sie .net Framework 4 oder höher verwenden, können Sie verwenden Directory.EnumerateFiles

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

Dies kann effizienter sein als die Verwendung, Directory.GetFilesda Sie vermeiden, die gesamte Dateiliste zu durchlaufen.

Claudio Redi
quelle
Ihre Codeversion macht dasselbe, aber versteckt. Keine Möglichkeit, alle Dateien, die mit dem Muster übereinstimmen, nur aus dem Nichts zu erhalten.
Kostadin
4
@Kostadin: habe es versäumt, dies vorher zu beantworten ... er möchte nicht, dass alle Dateien einem Muster entsprechen, er möchte wissen, ob es JEDEN gibt
Claudio Redi
Wenn Sie in 3.5 stecken bleiben, können Sie bool exist = Directory.GetFiles (Pfad, "* _peach.xml") verwenden. Any ();
Joe Johnston