Verzeichnis auwählen

Status
Nicht offen für weitere Antworten.

pat270881

Bekanntes Mitglied
hallo,

ich schreibe gerade eine kleine java-application. der user soll da die möglichkeit haben ein verzeichnis auszuwählen und alle darin vorhandenen mp3-files sollen dann in einer datenstruktur gespeichert werden.


nur wie kann ich das auswählen des verzeichnisses realisieren? - denn mit einem JFileChooser kann ich ja nur Files selektieren aber nicht ein verzeichnis auswählen.

lg pat
 

L-ectron-X

Gesperrter Benutzer
Code:
import javax.swing.*;
import java.io.*;

public class ChooseDir {
   public ChooseDir() {
      JFileChooser chooser = new JFileChooser();
      chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
      int result = chooser.showDialog(null, "Verzeichnis auswählen"); //statt 'null' später die Parent-Component einsetzen
      switch(result) {
         case JFileChooser.APPROVE_OPTION:
         File dir = chooser.getSelectedFile();
         String[] files = dir.list();
         for(int i = 0; i < files.length; i++) {
            System.out.println(files[i]);
         }
      }
   }
   
   public static void main(String[] args) {
      new ChooseDir();
   }
}

Einen geeigneten Beispielcode für einen Filter findest du hier: http://www.java-forum.org/de/viewtopic.php?t=22482
 

Dominicana

Aktives Mitglied
Das sollte NOCH genauer sein :
Code:
import java.io.File;
import java.util.Hashtable;
import java.util.Enumeration;
import javax.swing.*;
import javax.swing.filechooser.*;

public class ExampleFileFilter extends FileFilter {
    private static String TYPE_UNKNOWN = "Type Unknown";
    private static String HIDDEN_FILE = "Hidden File";
    private Hashtable filters = null;
    private String description = null;
    private String fullDescription = null;
    private boolean useExtensionsInDescription = true;
    public ExampleFileFilter() {
        this.filters = new Hashtable();
    }
    public ExampleFileFilter(String extension) {
        this(extension,null);
    }
    public ExampleFileFilter(String extension, String description) {
        this();
        if(extension!=null) addExtension(extension);
        if(description!=null) setDescription(description);
    }
    public ExampleFileFilter(String[] filters) {
        this(filters, null);
    }
    public ExampleFileFilter(String[] filters, String description) {
        this();
        for (int i = 0; i < filters.length; i++) {
            addExtension(filters[i]);
        }
        if(description!=null) setDescription(description);
    }
    public boolean accept(File f) {
        if(f != null) {
            if(f.isDirectory()) {
                return true;
            }
            String extension = getExtension(f);
            if(extension != null && filters.get(getExtension(f)) != null) {
                return true;
            };
        }
        return false;
    }
    public String getExtension(File f) {
        if(f != null) {
            String filename = f.getName();
            int i = filename.lastIndexOf('.');
            if(i>0 && i<filename.length()-1) {
                return filename.substring(i+1).toLowerCase();
            };
        }
        return null;
    }
    public void addExtension(String extension) {
        if(filters == null) {
            filters = new Hashtable(5);
        }
        filters.put(extension.toLowerCase(), this);
        fullDescription = null;
    }
    public String getDescription() {
        if(fullDescription == null) {
            if(description == null || isExtensionListInDescription()) {
                fullDescription = description==null ? "(" : description + " (";
                Enumeration extensions = filters.keys();
                if(extensions != null) {
                    fullDescription += "." + (String) extensions.nextElement();
                    while (extensions.hasMoreElements()) {
                        fullDescription += ", ." + (String) extensions.nextElement();
                    }
                }
                fullDescription += ")";
            } else {
                fullDescription = description;
            }
        }
        return fullDescription;
    }
    public void setDescription(String description) {
        this.description = description;
        fullDescription = null;
    }
    public void setExtensionListInDescription(boolean b) {
        useExtensionsInDescription = b;
        fullDescription = null;
    }
    public boolean isExtensionListInDescription() {
        return useExtensionsInDescription;
    }
}

Und bei "getSelectedFile()" sollte man noch "getAbsolutePath()" anfügen, dann klappts besser. :wink:
Code:
File_Chooser fC = new File_Chooser();
fC.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
ExampleFileFilter filter = new ExampleFileFilter();
filter.addExtension("mp3");
filter.setDescription("MP3 Dateien");
fC.setFileFilter(filter);
int returnval = fC.showOpenDialog(this);
if (returnval == JFileChooser.APPROVE_OPTION) {
    System.out.println(fC.getSelectedFile().getAbsolutePath()); // Das ist das Verzeichnis , nicht die Dateien!
}

Dem Beispiel von L-ectron-X kann man noch einen Datei-Filter anfügen, etwa so :
Code:
ExampleFileFilter eff = new ExampleFileFilter();
eff.addExtension("mp3");
eff.setDescription("MP3 Dateien");
file_list = dir.listFiles(new FileFilter(){ // "dir" : siehe Code von L-ectron-X
    public boolean accept(File file) {
        String t = file.getName().toLowerCase();
        return t.endsWith("mp3");
    }
});
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Verzeichnis schreibzugriffe erlaubt unabhängig von ACL und Posix Allgemeine Java-Themen 11
T Geeignetes Verzeichnis Allgemeine Java-Themen 5
P Wofür ist das Verzeichnis $HOME/.oracle_jre_usage? Allgemeine Java-Themen 3
M Dateien aus einem Verzeichnis auf einem Server auflisten Allgemeine Java-Themen 5
K NetBeans Ordner bei 'Clean&Build' automatisch in dist Verzeichnis kopieren Allgemeine Java-Themen 0
C Verzeichnis ins JMenu einlesen Allgemeine Java-Themen 2
A Class Datei aus Verzeichnis über URLClassLoader laden Allgemeine Java-Themen 2
C Umgebungsvariable Java-Datei in anderem Verzeichnis ausführen Allgemeine Java-Themen 2
K [Refactoring] ClassLoader Verzeichnis durchsuchen lassen Allgemeine Java-Themen 7
R Welches User-Verzeichnis wählen für Configurationsdateien - Windows Allgemeine Java-Themen 2
R Änderungen in einem Verzeichnis beobachten - Windows Allgemeine Java-Themen 3
S Aus executable jar Verzeichnis erstellen Allgemeine Java-Themen 8
reibi Leeres Verzeichnis in ein Zipfile einfügen Allgemeine Java-Themen 12
reibi Schreibrechte auf ein Verzeichnis Allgemeine Java-Themen 3
G Log4J Verzeichnis der Log-Datei konfigurieren Allgemeine Java-Themen 8
A Drucken ändert aktuelles Verzeichnis Allgemeine Java-Themen 2
reibi Aktuelles Verzeichnis in den Klassenpfad nehmen Allgemeine Java-Themen 9
T Eclipse Dateien einzeln aus einem Verzeichnis laden! Allgemeine Java-Themen 6
B ObjectOutputStream verzeichnis wählen Allgemeine Java-Themen 8
Benji0815 Verzeichnis wie im Windows Explorer in einem JTree anzeigen Allgemeine Java-Themen 6
L Applet Verzeichnis lesen Allgemeine Java-Themen 3
B Verzeichnis durchsuchen geschwindigkeit optimieren Allgemeine Java-Themen 6
B in welchem verzeichnis liegen alle installierten klassen? Allgemeine Java-Themen 6
G Klassen aus Verzeichnis laden Allgemeine Java-Themen 13
S Aktuelles Verzeichnis - CMD/Kommandozeilenproblem Allgemeine Java-Themen 9
G Zwischen Datei und Verzeichnis unterscheiden. Allgemeine Java-Themen 11
C Velocity liest template-Dateien nicht aus einem Verzeichnis Allgemeine Java-Themen 3
heart_disease Verzeichnis-Probleme mit ZIP Allgemeine Java-Themen 4
M Verzeichnis durchlaufen und Dateien umbennen Allgemeine Java-Themen 2
P Verzeichnis in JAR-Datei durchgehen Allgemeine Java-Themen 2
G Dateien und Verzeichnisse in einem Verzeichnis zählen Allgemeine Java-Themen 9
W Verzeichnis für Benutzerfiles Allgemeine Java-Themen 7
S Ist File ein root-Verzeichnis? Allgemeine Java-Themen 2
J Herangehensweise: FTP-Transfer von Verzeichnis Allgemeine Java-Themen 8
G Java Klasse in einem anderen Verzeichnis aufrufen Allgemeine Java-Themen 3
H mit javac Verzeichnis kompilieren Allgemeine Java-Themen 2
E Existierendes Verzeichnis nicht gefunden Allgemeine Java-Themen 4
M Verzeichnis auslesen - Fehler in isDirectory()? Allgemeine Java-Themen 4
F Verzeichnis, in dem sich die ausführende jar Datei befindet Allgemeine Java-Themen 9
K Verzeichnis rekursiv aus JAR-Datei extrahieren Allgemeine Java-Themen 6
O Ein Verzeichnis aus der Root ablesen/Dateitypen registrieren Allgemeine Java-Themen 5
S Starten einer Anwendung von einem anderen Verzeichnis Allgemeine Java-Themen 3
P Mit getResource() ein ganzes Verzeichnis laden Allgemeine Java-Themen 5
T Verzeichnis der Klasse Allgemeine Java-Themen 7
J Verzeichnis aus meinem JAR auslesen und abspeichern. Allgemeine Java-Themen 2
G Verzeichnis löschen? Allgemeine Java-Themen 3
W Aktuelles Verzeichnis rausfinden Allgemeine Java-Themen 13
S Probleme mit dem Compilieren von Dateien in Verzeichnis Allgemeine Java-Themen 4
G Dateien zählen im Verzeichnis Allgemeine Java-Themen 11
G aktuelles Verzeichnis Allgemeine Java-Themen 2
A Verzeichnis auflisten - auch innerhalb eines Jars Allgemeine Java-Themen 6
G Verzeichnis überwachen Allgemeine Java-Themen 13
S Temporäres Verzeichnis anlegen? Allgemeine Java-Themen 4
G Java Runtime Verzeichnis ermitteln Allgemeine Java-Themen 3
S dringend-verzeichnis von festplatte einlesen Allgemeine Java-Themen 9
P Dateinamen testen? Schreibrechte auf Verzeichnis testen? Allgemeine Java-Themen 8
M Verzeichnis verschieben? Allgemeine Java-Themen 2
G Bestimmte Dateien aus Verzeichnis löschen Allgemeine Java-Themen 5
S Programm starten mit Runtime aktuelles Verzeichnis wechseln Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben