GetFiles() mit mehrere Suchstrings



  • Hai,

    ich möchte ein Verzeichnis nach allen Bilddateien durchsuchen. Dies funktioniert mit

    fileinfo = new DirectoryInfo(path).GetFiles("*.jpg");
    

    eigentlich ganz gut, nur werden da eben nur die JPEGs ausgewählt, ich möchte in einem Arbeitsgang jpg, png, gif usw. auswählen.

    Geht das überhaupt?
    Und wenn ja, wie sieht dafür die Syntax aus?



  • Geht nicht, zumindest nicht das ich wüßte.
    Das wirst Du dann selbst codieren müssen.



  • Hmmm, das hab ich befürchtet 😞



  • Übrigens, hab es jetzt so gelöst:

    private FileInfo[] GetImages(string path)
    {
    	ArrayList list = new ArrayList();
    	list.AddRange(new DirectoryInfo(path).GetFiles("*.jpg"));
    	list.AddRange(new DirectoryInfo(path).GetFiles("*.jpeg"));
    	list.AddRange(new DirectoryInfo(path).GetFiles("*.png"));
    	list.AddRange(new DirectoryInfo(path).GetFiles("*.gif"));
    	list.AddRange(new DirectoryInfo(path).GetFiles("*.bmp"));
    	list.AddRange(new DirectoryInfo(path).GetFiles("*.tif"));
    	list.AddRange(new DirectoryInfo(path).GetFiles("*.tiff"));
    	return (FileInfo[])list.ToArray(typeof(FileInfo));
    }
    

    Vielleicht hat ja jemand noch ne schönere Lösung



  • Wenn du noch etwas optimieren willst, dann würde ich nur ein DirectoryInfo-Objekt anlegen und evtl. eine Schleife verwenden, also

    DirectoryInfo di = new DirectoryInfo(path);
    string sFiles[] = { "*.jpg", "*.jpeg", ... };
    
    foreach(string s in sFiles)
      list.AddRange(di.GetFiles(s));
    


  • Hmmm, so gefällt es mir, gleich besser


Anmelden zum Antworten