Wie kann ich mit C# in Ordnern nach einer Datei suchen und diese dann anzeigen lassen?
Hi, ich möchte in C# nach Dateien mit der Endung .png, .jpeg.... suchen (auch unterordner). Diese sollen dann auch in -einer Liste?- angezeigt werden. Am besten so das man darauf klicken kann und es öffnet sich die datei.
Wisst ihr wie man das realisieren kann? Danke schonmal
2 Antworten
Um die Dateinamen in einer ListBox (namens listBox1) anzuzeigen:
using System.IO;
//...
var dirInfo = new DirectoryInfo(path);
var files = new List<FileInfo>();
foreach (ext in String[]{"*.png", "*.jpg", *.jpeg", ...}) {
files.AddRange(dirInfo.EnumerateFiles(ext, SearchOptions.AllDirectories));
};
foreach (var f in files) {
listBox1.Items.Add(f);
};
// die folgende Zeile hineinnehmen, wenn der Name mit vollem Pfad angezeigt werden soll
listBox1.DisplayMember = "FullName";
// die folgende Zeile z. B. in private void Form1_Load()
// Auf das Doppelklickereignis der ListBox reagieren
this.listBox1.DoubleClick += new System.EventHandler(this.listBox1_DoubleClick);
// woanders auf der Form
private void listBox1_DoubleClick(object sender, EventArgs e) {
FileInfo fi = (FileInfo)listBox1.SelectedItem;
if (fi != null) {
// hier fi öffnen oder sonstiges damit anstellen
};
}
Sorry, ich hab hier ein paar Zeilen von Hand abgeschrieben statt zu kopieren und einzufügen.
Es müsste heißen:
foreach (ext in new String[]{"*.png", "*.jpg", *.jpeg", ...}) {
files.AddRange(dirInfo.EnumerateFiles(ext, SearchOptions.AllDirectories));
};
(es wird hier ja ein neues String-Array erzeugt)
Ursprünglich hatte ich
foreach (ext in {"*.png", "*.jpg", *.jpeg", ...}) {
files.AddRange(dirInfo.EnumerateFiles(ext, SearchOptions.AllDirectories));
};
versucht, aber das kriegen nicht alle Versionen von C# hin, warum auch immer.
Es ist möglich und auch garnicht so schwer zu realisieren. Es ist einfach ne Art Crawler aber für den privaten PC. Genaue Hilfe kann ich dir jetzt nicht geben aber ich Helfe gern weiter
Danke für deine Antwort, allerdings gibt es bei mir einige Fehler zb hier
ich habe das jetzt einfach mal entfernt, allerdings wird nichts angezeigt
das ist der Code den ich übernommen habe um ersteinmal was in der Liste zuhaben. Allerdings findet er nichts