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?

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
}

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.


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.