Directory auf .jpg-Bilder durchsuchen in Unterverzeichnissen

Status
Nicht offen für weitere Antworten.
M

michael bauer

Gast
hallo,
ich habe eine frage, ich durchsuche eine ordner mit rekursiven aufrufen auf das vorkommen von bildern mit der endung ".jpg".
gefundene erkennt er und hängt sie in meinen JTree, das geht bis auf die tiefste ebene, solange aber auch mind. ein jpg-Bild mit im unterordner liegt.
es funktioniert nicht, wenn ich einen ordner zb Tiere habe, in dem ordner sind wieder weiter ordner, in denen wiederum bilder drin wären, er müsste hier souzusagen 2 ebenen tiefer springen, aber das bekomme ich nicht hin.
wenn ich aber nun in den ordner Tiere irgendein jpg_Bild kopiere, dann findet er plötzlichwieder die weiteren unterordner.
ich komme nicht weiter, wäre super wenn mir einer helfen könnte, vielleicht ist es nur eine kleinigkeit, ich poste mal meine klassen, ich weiß, dass das "drum-herum" fehlt, aber das wäre zuviel zum posten, das sind die hauptteile des durchsuchens.
vielen dank schon mal.
Micha

Code:
public void init() {
		   File dir = new File("C:/Bilder");
		   DefaultMutableTreeNode root;
		   root = new DefaultMutableTreeNode("C:/Bilder");
		   listDir(dir, root);
	}
	
	
	
	public void listDir(File dir, DefaultMutableTreeNode aktuell) {
		 File[] dirList = dir.listFiles();
		 DefaultMutableTreeNode child = null, subchild;
		 
		System.out.println("REKURSIVER AUFRUF listDir("+dir.toString());
		for (File file : dirList) {
			if(file.isDirectory() && isPicDirectory(file)==true){
					//if listed item is a file, call the visitor-method
					
					DefaultMutableTreeNode tmp_node = new DefaultMutableTreeNode(file.getName());
					System.out.println("Erzeuge "+tmp_node.toString());
					aktuell.add(tmp_node);
					
					 listDir(file, tmp_node);
				}
         }
		 tree = new JTree(aktuell);
	     tree.setRootVisible(true);
	}
	
	
	public boolean isPicDirectory(File dir){
		boolean retVal = false;

		File[] dirList = dir.listFiles();
		for (File file : dirList) {
			if(file.isDirectory()){
				//rufe listfiles auf und schaue ob ein jpg drin ist
					listFiles(file);
					System.out.println("Bin in... "+file.toString());
			}
			else{
				if(file.toString().endsWith(".jpg") || file.toString().endsWith(".JPG")){
					retVal = true;
					break;
				}
			}
}
		return retVal;
	} // end isPicDirectory
	
	
	public Collection<File> listFiles(File dir){
		
		ArrayList retVal = new ArrayList();
		File[] dirList = dir.listFiles();
		for (File file : dirList) {
			if(file.isDirectory()){
				//wenn verzeichnis, dann ruft er sich rekursiv selbst auf
					listFiles(file);
				
				
			}
			else{
				//recursion down into new found directory
				if((file.toString().endsWith(".jpg") || file.toString().endsWith(".JPG")){
				
					retVal.add(file);
				}
			}

		}
		return retVal;
	}  // end listFiles
 

Quaxli

Top Contributor
Nun ja, ist doch klar:

Code:
public void listDir(File dir, DefaultMutableTreeNode aktuell) {
       File[] dirList = dir.listFiles();
       DefaultMutableTreeNode child = null, subchild;
      
      System.out.println("REKURSIVER AUFRUF listDir("+dir.toString());
      for (File file : dirList) {
         if(file.isDirectory() && isPicDirectory(file)==true){
               //if listed item is a file, call the visitor-method
               
               DefaultMutableTreeNode tmp_node = new DefaultMutableTreeNode(file.getName());
               System.out.println("Erzeuge "+tmp_node.toString());
               aktuell.add(tmp_node);
               
                listDir(file, tmp_node);
            }
         }
       tree = new JTree(aktuell);
        tree.setRootVisible(true);
   }

Hier prüfst Du, ob das File ein Ordner ist UND ob er Bilder enthält. Wenn ja, machst Du was, wenn nein machst Du nix. Du mußt hier als die Bedingung noch entsprechend aufbohren, daß Dein Programm entsprechend weiter macht, wenn die Bedingung nicht zutrifft.
 
G

Guest

Gast
Code:
         if(file.isDirectory() && isPicDirectory(file)==true){

hallo, erstmal danke,
ich schaffs nicht, hab die if-abfrage gesplittet, aber seh nichts, er geht keine 2 ebenen runter, nur wenn ein bild mit im ordner liegt,
hast du ne konkrete idee, wenn ja, wäre es super wenn du sie mir schickst, steh da echt grad sowas von aufm schlauch.
danke nochmal
Micha
 

Quaxli

Top Contributor
Bau Dir ein kleines lauffähiges Testprogramm ohne das JTree-Gefrickel und probiere es im Kleinen aus. Wenn das nicht funktioniert, poste Dein lauffähiges Beispielprogramm, dann kann man Dir konkreter helfen.
 

Quaxli

Top Contributor
Hier mal ein lauffähiges Beispiel ohne JTree:


Code:
import java.io.*;

public class Testrec {
	
	File root;

	public static void main(String[] args){
		new Testrec();
	}
	
	public Testrec(){
		root = new File("C:\\test");
		checkForString("txt",root);
	}

	private void checkForString(String string, File file) {

		File[] sub = file.listFiles();
		
		for(int i=0;i<sub.length;i++){

			if(sub[i].isDirectory()){
				checkForString(string,sub[i]);
			}else{
				if(sub[i].toString().endsWith(string)){
					System.out.println("Gefunden: " + sub[i]);
				}
			}
			
		}
		
	}
	
}

Ich habe halt mal nach txt-Endungen gesucht, weil das bei mir besser gepaßt hat ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Swing JFileChooser Event für neue Directory? AWT, Swing, JavaFX & SWT 5
TheJavaKid DIRECTORY ONLY im FileDialog AWT, Swing, JavaFX & SWT 2
MiMa Fonts, Icons, Bilder in JavaFX Anwendung AWT, Swing, JavaFX & SWT 5
F Bilder zu ausführbarer Jar-Datei hinzufügen AWT, Swing, JavaFX & SWT 5
G JPanel per Drag and Drop JButtons und Bilder ablegen AWT, Swing, JavaFX & SWT 1
G JPanel mit JButtons und Bilder AWT, Swing, JavaFX & SWT 5
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
S AffineTranformation Bilder verschwinden von Anzeige bei Pan, Zoom AWT, Swing, JavaFX & SWT 6
G Bilder in javafx Project AWT, Swing, JavaFX & SWT 11
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
Kirby.exe Bilder in GUI einfügen AWT, Swing, JavaFX & SWT 8
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
L Bilder werden in exportierter Datei nicht geladen AWT, Swing, JavaFX & SWT 6
C Bilder so einbinden, dass sie sich ändern AWT, Swing, JavaFX & SWT 6
J Bilder aus dem SceneBuilder werden in der Jar nicht dargestellt AWT, Swing, JavaFX & SWT 4
TheWhiteShadow JavaFX Bilder werden ungewollt Skaliert AWT, Swing, JavaFX & SWT 1
B JavaFX Bilder in einem Gewissen bereich halten AWT, Swing, JavaFX & SWT 1
J Bilder proportional verkleiner AWT, Swing, JavaFX & SWT 12
E Bilder skalieren AWT, Swing, JavaFX & SWT 4
DaCrazyJavaExpert Swing Bilder überlagern AWT, Swing, JavaFX & SWT 19
A Bilder als Hintergrund AWT, Swing, JavaFX & SWT 2
@SupressWarnings() JavaFX Bilder in executable jar laden AWT, Swing, JavaFX & SWT 5
Sugan JavaFX Bilder drucken AWT, Swing, JavaFX & SWT 0
K JPanel Bilder bei Windows nicht darstellbar AWT, Swing, JavaFX & SWT 6
Sugan Java FX Verzeichnisüberwachung -> Bilder auf GUI anzeigen AWT, Swing, JavaFX & SWT 4
E AWT Bilder als "Array" abspeichern. AWT, Swing, JavaFX & SWT 4
MrSnake Bilder aus Unterordner einfügen AWT, Swing, JavaFX & SWT 2
I 2D-Grafik Bilder Eingefügt, button jetzt im Hintergrund AWT, Swing, JavaFX & SWT 2
C SWT Treeview mit Bilder im Label verändert Expanded Icon AWT, Swing, JavaFX & SWT 1
M Swing JTextPane, Bilder und Text-flow AWT, Swing, JavaFX & SWT 2
A Mit dem Scene Builder eine Collage erstellen (Bilder beziehen aus Flickr) AWT, Swing, JavaFX & SWT 1
thet1983 JTable Bilder AWT, Swing, JavaFX & SWT 6
GenerationLost Bilder an bestimmten Platz einfügen/Objekte visualisieren AWT, Swing, JavaFX & SWT 1
F Bilder in jFrame einfügen AWT, Swing, JavaFX & SWT 3
J Bilder als Variable an einem Objekt speichern AWT, Swing, JavaFX & SWT 3
I Swing Bilder werden nach Export nicht angezeigt AWT, Swing, JavaFX & SWT 1
D 2D-Grafik Bilder anzeigen AWT, Swing, JavaFX & SWT 4
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
vodkaz JFrame,Bilder und Zeitverzögerung AWT, Swing, JavaFX & SWT 2
A Swing Bilder werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
I SWT Bilder, bzw. ein einzelnes Bild AWT, Swing, JavaFX & SWT 6
M Bilder zeichnen, NullPointer Exception AWT, Swing, JavaFX & SWT 3
Xbody 2D-Grafik JavaFX Bilder transformieren AWT, Swing, JavaFX & SWT 2
C 2D-Grafik Steganographie - Verschlüsselung von Dateien in Bildern - Bilder zeigen schwarze Rechtecke AWT, Swing, JavaFX & SWT 13
P Durch Bilder Scrollen AWT, Swing, JavaFX & SWT 2
F Bilder werden nicht in's Array geladen AWT, Swing, JavaFX & SWT 4
K Bilder übereinanderlegen AWT, Swing, JavaFX & SWT 11
windl Querstreifen beim Bilder malen und anpassen an neue CPU AWT, Swing, JavaFX & SWT 12
V Fertige Komponente zum Anzeigen mehrerer Bilder AWT, Swing, JavaFX & SWT 5
Karuka 2D-Grafik Bilder in GridLayout einfügen AWT, Swing, JavaFX & SWT 7
J Bilder in ausführbare jar einbinden AWT, Swing, JavaFX & SWT 7
J Swing Bilder anzeigen in Gridlayout AWT, Swing, JavaFX & SWT 11
H 2D-Grafik Bilder laden ist nicht zuverlässig AWT, Swing, JavaFX & SWT 3
F Bilder ineinander kopieren AWT, Swing, JavaFX & SWT 3
P Bilder verkleinern AWT, Swing, JavaFX & SWT 2
C SWT Mehrere Bilder in GUI laden AWT, Swing, JavaFX & SWT 5
Furtano AWT Skalierung mehrerer Bilder / Histogramme im Fenster AWT, Swing, JavaFX & SWT 4
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
T 2D-Grafik Statisches Hintergrundbild, dynamische Bilder drüber AWT, Swing, JavaFX & SWT 2
C Zwei Bilder übereinander legen AWT, Swing, JavaFX & SWT 1
L [SWT] Daten und Bilder drucken AWT, Swing, JavaFX & SWT 2
S Flickr Bilder in Gui Oberfläche AWT, Swing, JavaFX & SWT 21
L Bilder im JPanel als Hintergrund - Swing AWT, Swing, JavaFX & SWT 2
K Bilder nacheinander einfügen AWT, Swing, JavaFX & SWT 3
H Bilder auf Buttons per Klick tauschen ( Puzzle ) AWT, Swing, JavaFX & SWT 8
H Bilder in Array zufällig anordnen AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Viele Bilder zu einem Video AWT, Swing, JavaFX & SWT 3
J Vergleicher zweier Bilder AWT, Swing, JavaFX & SWT 2
C zwei Bilder nacheinander anzeigen AWT, Swing, JavaFX & SWT 2
L Swing Bilder über andere Bilder laden AWT, Swing, JavaFX & SWT 3
J Bilder überlappen AWT, Swing, JavaFX & SWT 18
P Bilder werden nach Änderung nicht angezeigt AWT, Swing, JavaFX & SWT 15
3 2D-Grafik Rechtecke auf Bilder legen und auslesen AWT, Swing, JavaFX & SWT 4
M Mehrere Bilder auf einmal anzeigen AWT, Swing, JavaFX & SWT 9
P Swing html mit bilder drin AWT, Swing, JavaFX & SWT 12
F Nicht alle Bilder werden angezeigt AWT, Swing, JavaFX & SWT 2
E Bilder auf JFrame AWT, Swing, JavaFX & SWT 7
R Bilder über URL einfügen AWT, Swing, JavaFX & SWT 4
F Applet zeigt Bilder nicht an AWT, Swing, JavaFX & SWT 5
M FileChooser Bilder auswählen AWT, Swing, JavaFX & SWT 8
G Swing Bilder zeichnen AWT, Swing, JavaFX & SWT 28
L Swing Bilder im Icons-Ordner AWT, Swing, JavaFX & SWT 4
U Bilder in Jar werden nicht gefunden AWT, Swing, JavaFX & SWT 5
S SWT Canvas: Flackernde Bilder AWT, Swing, JavaFX & SWT 3
A Bilder vergleichen AWT, Swing, JavaFX & SWT 4
E Swing JTextPane Inhalt(Text und Bilder) als HTML text bekommen AWT, Swing, JavaFX & SWT 3
E AWT Bilder und Java AWT, Swing, JavaFX & SWT 11
P Bilder einfügen AWT, Swing, JavaFX & SWT 4
D Swing JEditorPane mit HTML aber ohne Bilder AWT, Swing, JavaFX & SWT 3
S Swing Kleine Bilder in Panel einfügen AWT, Swing, JavaFX & SWT 13
A AWT Bilder als Link verwenden? AWT, Swing, JavaFX & SWT 11
T SWT Wie Bilder aus JAR-Dateien einbinden? AWT, Swing, JavaFX & SWT 12
S Bilder aus der Google Book Search API auslesen AWT, Swing, JavaFX & SWT 3
J Bilder in JScrollPane zentrieren AWT, Swing, JavaFX & SWT 5
M Bilder in einem Textfeld darstellen AWT, Swing, JavaFX & SWT 2
N Bilder aus Infos generieren lassen. Welches Framework? AWT, Swing, JavaFX & SWT 8
A SWT Bilder resizen AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen


Oben