# Dateien aus Ordner auslesen und in JList anzeigen!



## DoDoo (29. Nov 2006)

Brauche dringendst Hilfe!

Muss ein Projekt in der Schule machen und habe erst vor einigen Wochen mit Java begonnen. Unsere Lehrer kennen sich selbst nicht aus. Ich bräuchte daher Hilfe, bezüglich dem Auslesen eines Ordners. Die enthaltenen Dateien sollen in einer jList angezeigt werden. 

Danke im Vorraus!!

MFG

DoDoo


----------



## The_S (29. Nov 2006)

Siehe FAQ

http://www.java-forum.org/de/viewtopic.php?t=35290


----------



## Gast (29. Nov 2006)

Habe das schon angesehen und versucht. ich habe zum test einen ordner angelegt und 3 .txt datein reingespeichert. Ich habe den ordner in einem jTree. und jedes mal wenn ich drauf klicke zeigt es mir irgendeine der 3 Dateien an. Habe schon das ganze Forum durchstöbert. 

Bitte um Hilfe!

Lg


----------



## The_S (29. Nov 2006)

1. Ich dachte es soll ne JList sein und kein JTree!?
2. Dann liegt das vermutlich aber nicht am auslesen sondern an deiner Darstellung
3. poste doch mal relevanten code


----------



## DoDoo (29. Nov 2006)

Mal zur Erklärung!

Ich habe ein Panel (jPanelSaveAs, XyLayout) als Card. 
Darauf befindet sich ein Jtree, der die Ordner (+Unterordner)enthält, wo man hinspeichern darf. Es wäre mir auch recht, wenn der JTree die jeweils gespeicherten Dateien anzeigt. (Dachte mir nur über jList ist es einfacher). 

//JTree
 private TreeNode createTree(){

     DefaultMutableTreeNode root = new DefaultMutableTreeNode("Alpin_Timing");  //Root des Tree benennen
     DefaultMutableTreeNode Skischule = new DefaultMutableTreeNode("Skischule");//Unterordner1
     DefaultMutableTreeNode Skiclub = new DefaultMutableTreeNode("Skiverein");  //Unterordner2
     DefaultMutableTreeNode Rennenclub = new DefaultMutableTreeNode("Club_Rennen"); //Unterordner1a
     DefaultMutableTreeNode Trainingclub = new DefaultMutableTreeNode("Club_Training"); //Unterordner1b
     DefaultMutableTreeNode Rennenschule = new DefaultMutableTreeNode("Rennen"); //Unterordner2a

     Skiclub.add(Rennenclub);                                                   //Hierachie der Ordner definieren
     Skiclub.add(Trainingclub);                                                 //-
     Skischule.add(Rennenschule);                                               //-

     root.add(Skiclub);                                                         //-
     root.add(Skischule);                                                       //-

     return root;
    }

Wenn ich auf den JTree Klicke zeigt es mir den gewunschten Pfad an. Jetzt will ich nur mehr die bereits gespeicherten Dateien anzeigen.


 public void tree_mouseClicked(MouseEvent e) {                               //Beim Klicken auf den Tree...

         TreePath tp = tree.getSelectionPath();                                 //...wird der Pfad konfiguriert
         String p = tp.toString();
         String q = p.replace('[','/');
         String r = q.replace(']','/');
         String s = r.replace(',','/');
         String g = s.replaceAll(" ", "");                                      //Alle Leerzeichen entfernen
         jTextFieldPath.setText("D:" + g);
}



LG


----------



## The_S (29. Nov 2006)

Ich sehe in deinem Post nur eine Reihe von Feststellung, aber keine Frage. Ist das so gewollt?


----------



## DoDoo (29. Nov 2006)

Ich wollte gerne wissen wie ich, die bereits gespeicherten Datein im JTree, im richtigen Ordner anzeigen lassen kann?

Lg


----------



## The_S (29. Nov 2006)

Du holst dir die Dateinamen (File.getName()) und fügst sie als Blatt dem entsprechenden Knoten hinzu.


----------



## DoDoo (29. Nov 2006)

Funktioniert das auch, wenn ein ordner mehrere Dateien beinhaltet?

LG


----------



## The_S (29. Nov 2006)

klar, warum nicht? Es hängt ja nicht davon ab wie viele Dateien der Ordner hast, sondern wie du die Dateien dem JTree hinzufügst.


----------



## Gast (29. Nov 2006)

das File.getName(); muss ich demnach in einen string speichern!
Wenn nun mehrere datein vorhanden sind, sind sie ja alle im String, oder?! 

LG


----------



## The_S (29. Nov 2006)

Kommt drauf an wie du die ganze Sache ausliest  .

[edit] Mein Vorschlag:

```
public ArrayList<File> getFiles(File dir) { 

      File[] files = dir.listFiles(); 
      ArrayList<File> matches = new ArrayList<File> (); 
      if (files != null) { 
         for (int i = 0; i < files.length; i++) { 
            if (files[i].isDirectory()) { 
               matches.addAll(getFiles(files[i])); 
            } 
            else { 
               matches.add(files[i]); 
            } 
         } 
      } 
      return matches; 
   }
```

Dann haste alle Dateien in einem Verzeichnis + Unterverzeichnissen in einer ArrayList und kannst dann alle Files nacheinander durchgehen


----------



## DoDoo (29. Nov 2006)

ArrayList<File> matches = new ArrayList<File> ();

Bei dieser Zeile zeigt es mir folgenden Fehler an:Generics werden in in -source 1.2 nicht unterstützt(Versuchen Sie mit -source 1.5 Generics zu aktivieren) in Zeile 350 (350:17)


Lg


----------



## SlaterB (29. Nov 2006)

verwende entweder Java 1.5 oder streiche immer <irgendwas> raus,
wann immer dir jemand entsprechenden Code zeigt

meistens funktionier es auch ohne, manchmal musst du noch ein bisschen anpassen,
Cast einfügen, Schleifen umformulieren oder ähnliches


----------



## DoDOo (29. Nov 2006)

ArrayList zeichnet es mir an

und bei equalsIgnoreCase(find) zeichnet es mir das find an!!

ArrayList muss ja funktionieren, oder? Befehle sind doch ca gleich

LG


----------



## The_S (29. Nov 2006)

Du musst ArrayList importieren. Das mti dem "find" ist mein Fehler. Hab die Methode aus der FAQ kopiert und nicht alles ausgebessert  ich bessere es gelich aus.


----------



## DoDoo (29. Nov 2006)

Was für ein datentyp ist "find" und wo wird er angelegt?

LG


----------



## DoDoo (29. Nov 2006)

Danke!!!!

Letzte Frage vergiss bitte mein internet hat gesponnen.


----------



## Gast (29. Nov 2006)

Hab jetzt schon fast alles fehlerfrei nur funkt das mit matches.addall(searchfile(...... noch nicht. Weiß net genauwas i da reinschreiben muss. searchfile ist als fehler gekennzeichnet!

LG


----------



## The_S (29. Nov 2006)

sry, noch ein copy&paste Fehler meineseits. Ist auch ausgebessert


----------



## DoDoo (29. Nov 2006)

kannst ma den code posten?

LG


----------



## The_S (29. Nov 2006)

Steht doch da :roll: (Seite 1, 4. Post von unten)


[edit] BTW könntest du mal anfangen den Code, den du einsetzt, versuchen zu verstehen, dann würdeste die Fehler selber finden :roll:


----------



## Gast (29. Nov 2006)

Das Problem ist es sind immer Fehler, die ich wirklich net versteh!! Bin dir wirklich dankbar für deine Hilfe!!  
Ein letztes Prob hab i noch. Das getFile wird auch als Fehler gekennzeichnet. Warum?

LG


----------



## The_S (29. Nov 2006)

weil ein "s" hintendran fehlt ... oh man ich glaub ich bin Urlaubsreif. Ist ausgebessert. 

Für die Zukunft ist es übrigens nützlich, wenn du schreibst WAS für ein Fehler da ist und nicht nur DAS ein Fehler da ist.


----------



## DoDoo (29. Nov 2006)

Ich weiß ich nerv dich schon aber du bist einfach ein super programmierer und ich halt nicht. Ich mach das für die schule und nicht für mich. 

Desshalb einmal noch! 
Folgender Fehler wird bei: 
ArrayList<File>..... angezeigt!!!!!

Generics werden in in -source 1.2 nicht unterstützt(Versuchen Sie mit -source 1.5 Generics zu aktivieren) in Zeile 356 (356:21)

Bitte genau erklären dann bin ich schon still!!!

LG


----------



## The_S (29. Nov 2006)

1. Auf schleimen reagier ich net
2. Hausaufgaben werden hier schoma gar net gemacht
3. SlaterB hat dir dafür schon die Lösung gesagt


----------



## DoDoo (29. Nov 2006)

1. Ich schleim net, wenn das net die Wahrheit wär würdest du nicht hier jedem LOOSER helfen!!! 
2.Es ist keine Hausübung. Sondern ein Projekt und ich hab erst jetzt mit Java angefangen und es muss bald fertig werden. Wir haben in der schule noch keinen Satz über java gehört müssen es aber programmieren. Ich bin kein Programmierer möchte aber nicht in der letzten klasse wegen etwas sitzen bleiben, das nicht in unsere Sparte gehört.
3. Wer ist slaterB?????


----------



## The_S (29. Nov 2006)

Das hier ist SlaterB

http://www.java-forum.org/de/profile.php?mode=viewprofile&u=4802

und er hat dir auf Seite 1 dieses Threads die Lösung für dein Problem mitgeteilt.


----------



## DoDoo (29. Nov 2006)

Danke für die sarkatische jedoch schnelle und nette Antwort. 
Hab scho alles zusammengebracht. Hab in den Openbooks nachgelesen. Hoff du bist net allzu angfressesn. Sonst muss i ma a anderes Forum suchen 

LG


----------



## The_S (29. Nov 2006)

Lad dir einfach das JDK 1.5 runter und dann hat sich die Sache.


----------



## DoDoo (29. Nov 2006)

DANKE!!!!!

LG


----------



## Leroy42 (29. Nov 2006)

Bevor wir hier weiter herumspekulieren,
schau doch erstmal welche Java-Version du
hast und poste dies.


----------



## DoDoo (29. Nov 2006)

Habs schon geschafft! Ich habe einfach bei
public ArrayList<File>....

das <File> überall weggelassen aber trotzdem danke!!!

Ich arbeite mit JBuilder
und jCreator

Version 1.4


----------



## The_S (29. Nov 2006)

Was anderes hat SlaterB auch nicht gesagt ... :roll:


----------

