Autor Beitrag
MoBBer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37
Erhaltene Danke: 1



BeitragVerfasst: Fr 24.07.09 10:40 
Hallo zusammen,

hab mal wieder eine Frage. Mit einem FolderBrowserDialog sucht man sich einen Ordner aus. Nun möchte ich diesen Ordner(die Unterordner können ignoriert werden)
nach .bmp-Datein durchsucehn und alle Funde in eine ListBox eintragen. Ich denke das geht mit dem directory Searcher aber wie benutzt man den?

Danke schonmal im Vorraus.

mfG MoBBer


Moderiert von user profile iconChristian S.: Topic aus WinForms verschoben am Fr 24.07.2009 um 20:16
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Fr 24.07.09 11:10 
Hallo,

ich bin mir nicht ganz sicher, aber der DirectorySearcher ist für Active Directory gedacht (siehe msdn.microsoft.com/d...ectorysearcher.aspx).

Für das was du willst ist DirectoryInfo wohl geeigneter.
ausblenden C#-Quelltext
1:
2:
3:
DirectoryInfo di = new DirectoryInfo(fbd.SelectedPath);

            di.GetFiles("*.bmp");


Ich würde dir aber raten gleich einen OpenFileDialog nehmen. Dann kann der Anwender die Bilder genauer selektieren.

Zum Beispiel:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
           OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "Bitmap (*.bmp)| *.bmp";
            ofd.Multiselect = true;
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                this.listBox1.Items.Clear();

                foreach (string file in ofd.FileNames)
                {
                    this.listBox1.Items.Add(file);
                }
            }


Gruß Daniel
MoBBer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37
Erhaltene Danke: 1



BeitragVerfasst: Fr 24.07.09 11:12 
Omg hab den Wald vor lauter Bäumen nicht gesehen.
Wofür gibts denn die Klasse IO und GetFiles();

ausblenden C#-Quelltext
1:
      string[] bilder = Directory.GetFiles(Pfad, "*.bmp");					


Danke trotzdem für deine Antwort.

Zum selektieren ist ja die Listbox gedacht, sieht nämlich so aus das ein Pfad schon vorgegeben sein kann und dann klickt man auf bild ändern und ein PopUp erscheint mir einer Vorschau und der Listbox.

Das Thema kann eigentlich gelöscht werden, dass Thema wurde schon öfters besprochen, oder zumindest in das IO Forum verschoben werden.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 24.07.09 11:17 
Wie danielf schon geschrieben hat, ist DirectorySearcher die falsche Klasse.
Ich würde direkt die (statischen) Directory-Methoden benutzen:
ausblenden C#-Quelltext
1:
string[] bitmapfiles = Directory.GetFiles(path, "*.bmp");					

Nur wenn man weitere Verzeichniseigenschaften benötigt, ist die DirectoryInfo sinnvoll (ähnliches gilt für File vs. FileInfo).

Schau einfach mal in die MSDN bezüglich dieser Klassen.

Edit: falsche Tags benutzt - das kommt davon, wenn man in verschiedenen Foen unterwegs ist -)
und zu langsam bin ich auch noch...
MoBBer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37
Erhaltene Danke: 1



BeitragVerfasst: Fr 24.07.09 11:34 
Macht doch nix.
Kann ich GetFiles() auch mehrere Endungen übergeben (das gibt bei mir immer InvalideChar) oder muss ich dann extra mehrere Arrays anlegen oder gibt es villeicht doch eine besser Methode wenn ich alle möglichen Bildformate haben möchtet?
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Di 28.07.09 07:52 
Also wenn ich mich richtig erinnere denke ich mal, dass das einfach so klappen müsste, indem Du sie mit Semikolon (also dem ;) trennst - oder?
Auf dem Sektor habe ich aber auch noch nicht so wirklich (frische) Erfahrungen.
Aber so ist das zum Beispiel auch im OpenDialog in Paint für MSJPEG angegeben.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19274
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 28.07.09 08:12 
Nein, das geht nicht. Entweder man fügt mehrere Suchergebnisse zusammen oder man holt sich alle Dateinamen und sucht selbst. Letzteres sieht dann z.B. so aus:
ausblenden C#-Quelltext
1:
2:
            IEnumerable<string> FileNames = Directory.GetFiles(@"c:\windows").Where(
                CurFile => CurFile.EndsWith(".exe") || CurFile.EndsWith(".txt"));
Das geht allerdings erst mit Linq (ggf. oben using System.Linq; ergänzen) ab .NET 3.0.
weTTexFry
Hält's aus hier
Beiträge: 4

Win Vista(Business), Win 7(Ultimate), Kubuntu 8.10
C# (VS 2008, Prof.), C++, ActivePerl 5.10
BeitragVerfasst: Di 28.07.09 08:40 
Ne andre möglichkeit endungen zu suchen is regex

eine liste zum erstellen des suchstrings findest du auf www.AddedBytes.com unter cheat-sheets
oder gleich hier als pdf: www.addedbytes.com/d...-cheat-sheet-v2/pdf/
MoBBer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37
Erhaltene Danke: 1



BeitragVerfasst: Di 04.08.09 17:24 
Hmm ich machs einfach mit mehreren Arrays, dass ist einfach und tuts für meine Zwecke vollkommen.