Forum: PC-Programmierung Odner filtern mit Jchooser


von Ilja F. (Gast)


Lesenswert?

Hallo Leute!!!
ich will mit jchooser NUR OdnerN oder Unterodner, die ein bestimmteR 
Dateityp enthalten, sichtbar machen. Also andere OdnerN oder 
Unterodnern, die diesen Dateityp nicht enthalten, müssen unsichtbar 
sein. zB: mit den unterstehende Codes, koennen alle Odnern und 
Unterodnern (auch die haben kein Text-Datei) ausgewählt bzw. geoffnet 
werden und nur die Text-Datei in diesen Odnern werden sichtbar.
1
JFileChooser fc = new JFileChooser();
2
    
3
      fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES_ONLY);
4
      fc.setFileFilter( new FileFilter() {
5
          
6
7
        public boolean accept( File f ) {
8
            return f.isDirectory() ||
9
                   f.getName().toLowerCase().endsWith(".txt");
10
          }
11
          public String getDescription() {
12
            return "Text Dateien(*.txt) ";
13
          }
14
        } );
15
......
16
.....

Aber jetzt wie kann ich diese Code so ändern, dass auch NUR die Odnern 
und Unterodnern, die Text-Dateien enthalten, sichtbarseien und die 
andere Odner oder Unterodnern, die keine Text-Datei haben Unsichtbar 
bleibe?

Habe ich mit wie folgt versuch, aber funtionniert nicht :
1
........
2
.......
3
 return !f.isDirectory() && 
4
         f.getName().toLowerCase().endsWith(".txt"); 
5
.......
6
.....

Kann jemand mir weiterhelfen?
Danke ;)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Ilja flecher schrieb:
> Habe ich mit wie folgt versuch, aber funtionniert nicht

Und hast du das mit deiner Forderung "Ordner die TXT Dateien enthalten" 
verglichen? Passt das zusammen? Ich behaupte mal nicht!

Ilja flecher schrieb:
> Kann jemand mir weiterhelfen?

Verabschiede dich von solchen "Schlangen-Bedingungen" und bau das ganze 
Strukturiert auf:
1
Ist das FileObjekt ein Ordner?
2
 -> Prüfe ob Ordner (oder Unter-Ordner) eine TXT Datei enthält
3
   Ja?   Gib true zurück
4
   Nein? Gib false zurück
5
sonst
6
  Endet die Datei auf .txt
7
   Ja?   Gib true zurück
8
   Nein? Gib false zurück

Bedenke zudem, das so eine Forderung recht inperformant sein kann, da du 
im schlimmstenfall (keine TXT Datei vorhanden) die gesamte Festplatte 
durchsuchen musst.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.