ActionListener mit Files etc

fel1x

Mitglied
Guten Morgen!
Ich verzweifle gerade an meinem Java Programm. Ich will in einem Ordner nach einer bestimmten Datei (Namen) suchen. Ich hab nur leider die komplette Übersicht verloren und weiß nicht wie ich das Problem lösen soll. Eigentlich sollte die Methode den Dokumentennamen an jedem Unterstrich trennen und jeden Teil einzeln überprüfen, ob er mit dem eingegebenen (JTextfield) übereinstimmt. Ich musste mir für dieses Programm extra Generics aneignen, deshalb fühle ich mich noch nicht so sicher mit ihnen. Das wäre meine suchen Methode:
Ich kenne den Tag nicht um Code zu markieren, wenn ihn mir jemand sagen kann editiere ich meinen Beitrag. Danke schon mal für eure Antworten

Java:
public List<File> suche(File dir, String find) {
     List<File> matches = new ArrayList<File>();
     if (files != null) { //files ist die Liste der Files im Ordner
          for (int i = 0; i < files.length; i++) {
               if (files[i].getName().equalsIgnoreCase(find)) {
                    matches.add(files[i]);
               }
               if (files[i].isDirectory()) {
                    maches.addAll(suche(files[i], find));
               }
          }
     }
     return matches;
}
 
Zuletzt bearbeitet von einem Moderator:

Robat

Top Contributor
Also Code kannst du in die [code=Java]Your Code[/code] Tags setzen.
Was genau ist denn das Problem? Momentan schaust du ja nur, ob der Name des Files gleich dem zu findenden Namen ist.

Was genau macht denn dir in der Methode. Du übergibst den Parameter zwar immer aber machst damit nichts, sondern gehst immer nur die Files aus dem files Attribut durch.

Splitten kannst du den Filenamen mit der String#split(String) Methode. Diese gibt dir ein Array mit dem gesplitteten String, welches du durchgehen und vergleichen kannst.
 

fel1x

Mitglied
Also Code kannst du in die [code=Java]Your Code[/code] Tags setzen.
Was genau ist denn das Problem? Momentan schaust du ja nur, ob der Name des Files gleich dem zu findenden Namen ist.

Was genau macht denn dir in der Methode. Du übergibst den Parameter zwar immer aber machst damit nichts, sondern gehst immer nur die Files aus dem files Attribut durch.

Splitten kannst du den Filenamen mit der String#split(String) Methode. Diese gibt dir ein Array mit dem gesplitteten String, welches du durchgehen und vergleichen kannst.
Danke schon mal für deine Antwort!
Mein Problem ist unter anderem, dass wenn ich
Java:
String[] teile = files.split("_");
mache, die Methode nicht für für das File Array existiert bzw nicht gesplittet werden kann. Weil eigentlich ist "file" ja ein Array mit den ganzen Dateinamen drinnen. ich weiß nicht wie ich das am besten splitte und danach weiterverwende, um zum überprüfen, ob es eine Übereinstimmung gibt
 

Robat

Top Contributor
Du gehst doch oben in deinem Code schon das Array durch und holst dir über getName() den Namen der Datei. Diesen Namen willst du doch splitten und nicht das Array. Sprich für jede Iteration müsstest du sowas hier schreiben..
Java:
for(int i = 0; i < files.length; i++) {
    String[] parts = files[i].getName().split("_");
    for(String part : parts) {
         // prüfen ob der Teil des Namens auf den Textfeld-Inhalt passt
    }
}
 

fel1x

Mitglied
Du gehst doch oben in deinem Code schon das Array durch und holst dir über getName() den Namen der Datei. Diesen Namen willst du doch splitten und nicht das Array. Sprich für jede Iteration müsstest du sowas hier schreiben..
Java:
for(int i = 0; i < files.length; i++) {
    String[] parts = files[i].getName().split("_");
    for(String part : parts) {
         // prüfen ob der Teil des Namens auf den Textfeld-Inhalt passt
    }
}
Ajaaa, danke! Hat mir schon sehr weitergeholfen. Jetzt bleibt nur noch ein Problem:
Angenommen, es treffen 2 Parts zu. Wie bekomme ich das alles dann wieder zu einem File zusammen (also den ganzen Namen), sodass der Name in die Liste hinzugefügt werden kann?
Java:
public List<File> suche(String find) {

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

  String[] teile;

  if (files != null) {

    for (int i = 0; i < files.length; i++) {

      teile = files[i].getName().split("_");

      for (int x = 0; x < teile.length; x++) {

        if (teile[x].equalsIgnoreCase(find)) {

          matches.add(teile[x]); //Problem

        }

      }

    }

  }
  return matches;
}
Edit: Wieso wird der Code jetzt so komisch dargestellt?
 
Zuletzt bearbeitet von einem Moderator:

Robat

Top Contributor
Willst du, dass sich der Name aus den Teilen zusammen setzt, die passen? Dann bau dir den String in der Schleife zusammen und füg ihn am Ende der Liste hinzu, gesetzt dem Fall er ist nicht leer.
 

fel1x

Mitglied
Willst du, dass sich der Name aus den Teilen zusammen setzt, die passen? Dann bau dir den String in der Schleife zusammen und füg ihn am Ende der Liste hinzu, gesetzt dem Fall er ist nicht leer.
ja, also wenn der Dateiname TEST_DATUM_XYZ ist, und nach DAT gesucht wird, alle Files die "DAT" im Namen enthalten in diese Liste hinzugefügt werden
 

Robat

Top Contributor
Dann mach folgendes (Theoretisch wäre es mit einem StringBuilder perfomanter, aber versuch es erstmal so)
Code:
splitte den Dateinamen an '_' => teile
lege dir ein neuen, leeren String an => name
für jedes Element in teile :
    wenn teile[i] entspricht dem gesuchten Namen :
        name = name + teile[i]
wenn name nicht leer ist :
    füge name der Liste hinzu
 

fel1x

Mitglied
Dann mach folgendes (Theoretisch wäre es mit einem StringBuilder perfomanter, aber versuch es erstmal so)
Code:
splitte den Dateinamen an '_' => teile
lege dir ein neuen, leeren String an => name
für jedes Element in teile :
    wenn teile[i] entspricht dem gesuchten Namen :
        name = name + teile[i]
wenn name nicht leer ist :
    füge name der Liste hinzu
Dazu müsste ich den Rückgabetyp aber von List<File> zu List<String> und die Liste matches auch zu <String> machen stimmts? oder kann ich diese Strings wieder zu Files machen oder irgendwie so?
 

Robat

Top Contributor
alle Files die "DAT" im Namen enthalten in diese Liste hinzugefügt werden
Ah sorry hatte das hier komplett überlesen. Dann natürlich eher so:
Code:
splitte den Dateinamen an '_' => teile
für jedes Element in teile :
    wenn teile[i] entspricht dem gesuchten Namen :
        füge die Datei der Liste hinzu
        break


EDIT: Wobei du das auch einfach mit einem filename.contains(<gesuchter String>) realisieren könntest
 

fel1x

Mitglied
Ah sorry hatte das hier komplett überlesen. Dann natürlich eher so:
Code:
splitte den Dateinamen an '_' => teile
für jedes Element in teile :
    wenn teile[i] entspricht dem gesuchten Namen :
        füge die Datei der Liste hinzu
        break


EDIT: Wobei du das auch einfach mit einem filename.contains(<gesuchter String>) realisieren könntest
AH jetzt hab ich's! Und auch verstanden. Keine Ahnung was da los war. Danke jedenfalls! :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E ActionListener Java Basics - Anfänger-Themen 4
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
C JButton reagiert nicht auf actionListener Java Basics - Anfänger-Themen 15
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
J Array Actionlistener Java Basics - Anfänger-Themen 9
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
P Erste Schritte ActionListener Java Basics - Anfänger-Themen 2
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
J Erste Schritte Actionlistener für tbar/ JButton Java Basics - Anfänger-Themen 15
krgewb ActionListener Java Basics - Anfänger-Themen 1
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
CptK Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
U ActionListener mit JMenuItems verknüpfen Java Basics - Anfänger-Themen 1
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
L Problem bei Java-ActionListener Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
JavaNewbie2.0 ActionListener Java Basics - Anfänger-Themen 11
Voreck Actionlistener problem Java Basics - Anfänger-Themen 1
G Im ActionListener eine "äußere" Variable verändern Java Basics - Anfänger-Themen 13
T Fehler beim ActionListener Java Basics - Anfänger-Themen 2
M public static int in ActionListener Java Basics - Anfänger-Themen 6
S actionlistener timer Java Basics - Anfänger-Themen 9
J Interface ActionListener in eigener Klasse Java Basics - Anfänger-Themen 27
P aus ActionListener auf HauptFrame zugreifen Java Basics - Anfänger-Themen 4
A Klassen Bool Actionlistener Java Basics - Anfänger-Themen 2
K Methoden ActionListener wird übersprungen Java Basics - Anfänger-Themen 3
S actionlistener Java Basics - Anfänger-Themen 29
S ActionListener und Statische Variablen Java Basics - Anfänger-Themen 4
J ActionListener Java Basics - Anfänger-Themen 5
A ActionListener Java Basics - Anfänger-Themen 9
R Problem mit ActionListener für Buttons Java Basics - Anfänger-Themen 5
Z ActionListener wird nicht erkannt? Java Basics - Anfänger-Themen 5
T ActionListener Source vergleichen Java Basics - Anfänger-Themen 8
T Frage zum ActionListener Java Basics - Anfänger-Themen 5
R ActionListener mit for Schleife füllen. Java Basics - Anfänger-Themen 4
K Button's mit versch. Aufgaben/ActionListener Java Basics - Anfänger-Themen 12
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
I ActionListener reagiert nicht Java Basics - Anfänger-Themen 6
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
D Erste Schritte Buttons mit actionlistener Problem Java Basics - Anfänger-Themen 3
S JButton mit ActionListener Java Basics - Anfänger-Themen 5
S ActionListener, Methoden und Variablen Java Basics - Anfänger-Themen 4
X Variablen Actionlistener | Variablen-namen Java Basics - Anfänger-Themen 5
G ActionListener implementieren Java Basics - Anfänger-Themen 12
T Erste Schritte Berechnete Variable im ActionListener zurückführen Java Basics - Anfänger-Themen 6
D Panel sichtbar/unsichtbar machen im ActionListener Java Basics - Anfänger-Themen 3
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
M Button , actionlistener Java Basics - Anfänger-Themen 11
P Erste Schritte JTable mit Daten aus Acces DB füllen und Actionlistener einsetzen Java Basics - Anfänger-Themen 29
M Actionlistener Java Basics - Anfänger-Themen 9
D Problem mit ausgelagertem Actionlistener Java Basics - Anfänger-Themen 4
D KeyListener und ActionListener Problem Java Basics - Anfänger-Themen 6
M Klassen Durch den ActionListener das GUI einer anderen Klasse verändern Java Basics - Anfänger-Themen 8
T NullPointerException im ActionListener Java Basics - Anfänger-Themen 3
C Erste Schritte GUI - ActionListener - Exception Nullpointer Java Basics - Anfänger-Themen 5
Kenan89 ActionListener in eigene Klasse Java Basics - Anfänger-Themen 8
E JMenu ActionListener reagiert nicht? Java Basics - Anfänger-Themen 6
V ActionListener in einer for-Schleife Java Basics - Anfänger-Themen 2
S Erste Schritte ActionListener auf Buttons einrichten Java Basics - Anfänger-Themen 3
M Variablen Variable lässt sich durch ActionListener nicht ändern Java Basics - Anfänger-Themen 5
P ActionListener Action Event Java Basics - Anfänger-Themen 5
L ActionListener zerschießt AnchorLayout Java Basics - Anfänger-Themen 8
D ActionListener braucht zwei Klicks auf Button??? Java Basics - Anfänger-Themen 2
M Methoden Timer in ActionListener aufrufen Java Basics - Anfänger-Themen 2
Y Actionlistener passt nicht zu Dataset Java Basics - Anfänger-Themen 6
W Problem mit FileWriter / ActionListener Java Basics - Anfänger-Themen 6
F actionListener Java Basics - Anfänger-Themen 3
T ActionListener auslagern Java Basics - Anfänger-Themen 14
S Actionlistener funktionieren nicht in der .jar Java Basics - Anfänger-Themen 9
E ActionListener abwarten lassen? Java Basics - Anfänger-Themen 11
E ActionListener in anderer Klasse erkennen Java Basics - Anfänger-Themen 13
H ActionListener Verbesserung möglich? (This) Java Basics - Anfänger-Themen 3
E ActionListener erkennt instanz nicht Java Basics - Anfänger-Themen 9
V ActionListener bei vielen Modulen Java Basics - Anfänger-Themen 3
J ActionListener Java Basics - Anfänger-Themen 2
T JLabel durch ActionListener ändern Java Basics - Anfänger-Themen 4
S ActionListener Java Basics - Anfänger-Themen 4
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
K Actionlistener Java Basics - Anfänger-Themen 7
M ActionListener außerhalb des EDT ausführen Java Basics - Anfänger-Themen 2
A ActionListener im JMenu - Problem Java Basics - Anfänger-Themen 2
M ActionListener reagiert nicht Java Basics - Anfänger-Themen 4
N ActionListener + GUI Java Basics - Anfänger-Themen 8
H Bewegtes Bild im ActionListener [Problem] Java Basics - Anfänger-Themen 12
D Liste+ActionListener Java Basics - Anfänger-Themen 6
L wie Jframe an ActionListener übergeben Java Basics - Anfänger-Themen 4
U ActionListener und KeyListener - KeyListener funktioniert nicht Java Basics - Anfänger-Themen 2
A JButton ActionListener nach einmaligem Ausführen zurücksetzen Java Basics - Anfänger-Themen 13
Luk10 Problem mit ActionListener Java Basics - Anfänger-Themen 6
R Viereck zeichnen über TextField-Eingabe /ActionListener Java Basics - Anfänger-Themen 9
C ActionListener problem beim starten von programmen Java Basics - Anfänger-Themen 3
C ActionListener problem Java Basics - Anfänger-Themen 4
L Tray-Einträge und dazu passende ActionListener dynamisch erzeugen? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben