Ordner auslesen und in Editor ausgeben

Status
Nicht offen für weitere Antworten.

Future01

Mitglied
Hallo, bin neu hier und kenn mich auf dem Board nicht so aus, weshalb ich auch nicht weiß, ob das Thema hier richtig ist:

Zu meiner Frage: Habe versucht in Java ein Programm zu schreiben, mit dessen Hilfe man Ordner auslesen und zb. im Editor ausgeben kann
Jedenfalls habe ich es so weit gebracht, dass ich ein Verzeichnis auswählen und nach zwei bestimmten Dateiendungen suchen kann(.pas und .dfm). Jedoch habe ich noch keinen vernünftigen Ansatz zusammengebracht, die im Editor auszugeben.

Meine Vorstellung war zB.: DATEI.pas finden=> im Editor mit Zeilenangabe ausgeben;
(auch doppelte Einträge sollen angezeigt werden)


Hier mein Versuch:
Java:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import java.util.Scanner;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileFilter;

public class GUIFenster {

	static File myFile;

	public static void main(String[] args) {

		final JFrame myframe = new JFrame();

		JButton Verzeichnis = new JButton("Bitte einen Ordner auswählen!!");

		ActionListener myListener = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JFileChooser chooser = new JFileChooser();
				chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
				chooser.addChoosableFileFilter(new FileFilter() {
					public boolean accept(File f) {
						if (f.isDirectory())
							return true;
						return f.getName().toLowerCase().endsWith(".pas")
								|| f.getName().toLowerCase().endsWith(".dfm");
					}

					public String getDescription() {
						return "pas und dfm-Dateien";
					}
				});
				chooser.setMultiSelectionEnabled(false);
				myFile = chooser.getCurrentDirectory();
				if (chooser.showOpenDialog(myframe) == JFileChooser.APPROVE_OPTION)
					System.out.println("Datei " + myFile + " ausgewählt.");

				try {
					scanner();
				} catch (Exception ex) {

				}
			}
		};

		Verzeichnis.addActionListener(myListener);

		myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		myframe.getContentPane().add(Verzeichnis);

		myframe.setSize(207, 90);

		myframe.setVisible(true);
	}

	public static void scanner() throws FileNotFoundException {

		// while(myFile){

//		 }
		Scanner myscanner = new Scanner(myFile);
		String line;
		while ((line = myscanner.nextLine()) != null) {
			System.out.println(line);
		}
		//File dir = myFile;
		//String[] fileList = dir.list(new FilenameFilter() {
		   // public boolean accept(File d, String name) {
		     //  return name.endsWith(".pas")||name.endsWith(".dfm");
		    }
		;

	}

wie gesagt, öffnen kann mans, aber sobald er im ordner angekommen ist, wird der nicht durchsucht und es kommt nix dabei raus.

wäre sehr dankbar wenn mir jemand hilfreiche ansätze/lösungen liefern kann..


mfg Future01:shock:
 

Future01

Mitglied
Hallo, bin neu hier und kenn mich auf dem Board nicht so aus, weshalb ich auch nicht weiß, ob das Thema hier richtig ist:

Zu meiner Frage: Habe versucht in Java ein Programm zu schreiben, mit dessen Hilfe man Ordner auslesen und zb. im Editor ausgeben kann
Jedenfalls habe ich es so weit gebracht, dass ich ein Verzeichnis auswählen und nach zwei bestimmten Dateiendungen suchen kann(.pas und .dfm). Jedoch habe ich noch keinen vernünftigen Ansatz zusammengebracht, die im Editor auszugeben.

Meine Vorstellung war zB.: DATEI.pas finden=> im Editor mit Zeilenangabe ausgeben;
(auch doppelte Einträge sollen angezeigt werden)


Hier mein Versuch:
Java:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import java.util.Scanner;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileFilter;

public class GUIFenster {

	static File myFile;

	public static void main(String[] args) {

		final JFrame myframe = new JFrame();

		JButton Verzeichnis = new JButton("Bitte einen Ordner auswählen!!");

		ActionListener myListener = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JFileChooser chooser = new JFileChooser();
				chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
				chooser.addChoosableFileFilter(new FileFilter() {
					public boolean accept(File f) {
						if (f.isDirectory())
							return true;
						return f.getName().toLowerCase().endsWith(".pas")
								|| f.getName().toLowerCase().endsWith(".dfm");
					}

					public String getDescription() {
						return "pas und dfm-Dateien";
					}
				});
				chooser.setMultiSelectionEnabled(false);
				myFile = chooser.getCurrentDirectory();
				if (chooser.showOpenDialog(myframe) == JFileChooser.APPROVE_OPTION)
					System.out.println("Datei " + myFile + " ausgewählt.");

				try {
					scanner();
				} catch (Exception ex) {

				}
			}
		};

		Verzeichnis.addActionListener(myListener);

		myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		myframe.getContentPane().add(Verzeichnis);

		myframe.setSize(207, 90);

		myframe.setVisible(true);
	}

	public static void scanner() throws FileNotFoundException {

		// while(myFile){

//		 }
		Scanner myscanner = new Scanner(myFile);
		String line;
		while ((line = myscanner.nextLine()) != null) {
			System.out.println(line);
		}
		//File dir = myFile;
		//String[] fileList = dir.list(new FilenameFilter() {
		   // public boolean accept(File d, String name) {
		     //  return name.endsWith(".pas")||name.endsWith(".dfm");
		    }
		;

	}

wie gesagt, öffnen kann mans, aber sobald er im ordner angekommen ist, wird der nicht durchsucht und es kommt nix dabei raus.

wäre sehr dankbar wenn mir jemand hilfreiche ansätze/lösungen liefern kann..


mfg Future01:shock:




=====>> Er soll im ausgewählten Verzeichnis auch alle Unterordner durchsuchen können (hats vergessen zu erwähnen)
 

KrokoDiehl

Top Contributor
Naja, in deiner
Code:
scanner()
-Methode gehst du gar nicht weiter auf myFile ein. Im FileChooser sagst du, dass man auch Verzeichnisse auswählen kann, also musst du in
Code:
scanner()
auch den Fall des Verzeichnisses abfragen.

In etwa so:
Java:
if (myFile.isDirectory())
{
    for ( File file : myFile.listFiles() )
        scan(file);
}
else
{
    scan(myFile);
}

Und
Code:
scan()
durchsucht dann eben die konkrete Datei.
 

ARadauer

Top Contributor
Sorry ich habs noch immer nicht ganz verstanden..
Was genau soll mit der oder den Dateien passieren?

"im Editor mit Zeilenangabe ausgeben;" Du willst in den offenen Editor Text einfügen? Oder soll eine Datei geschrieben werden?
 

Future01

Mitglied
Sorry ich habs noch immer nicht ganz verstanden..
Was genau soll mit der oder den Dateien passieren?

"im Editor mit Zeilenangabe ausgeben;" Du willst in den offenen Editor Text einfügen? Oder soll eine Datei geschrieben werden?



Das Programm soll hergehen und das ausgewählte Verzeichnis und alle Ordner/unterOrdner nach den Dateien mit den Endungen .pas und .dfm durchsuchen; Dann soll es in die Datei hineingehen und nach einem bestimmten schlagwort suchen: danach soll es, wenn es dieses schlagwort in der datei gefunden hat , mit zeilenangabe im notepad(habs halt genommen, weils gängig ist, meinetwegen auch excel) anzeigen.

am ende sollten dann alle zeilen mit dem schlagwort , die in den .dfm und .pas dateien gefunden wurden, im notepad aufgelistet sein.


is irgendwie schwer des so klar auszudrücken. sry. hoff das es jetzt klarer ist
 

ARadauer

Top Contributor
Also grundsätzlich, würd ich einfach mal eine textdaei schreiben... und diese kann dan je eh immer noch geöffnet werden...

ok weil freitag ist...

Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;



public class FileScanner {


   BufferedWriter writer;
   String[] endungen;
   String wordToFind;


   public static void main(String args[]) throws IOException{
      FileScanner scanner = new FileScanner();
      String[] endungen = {".txt"};
      scanner.startScanning(new File("C:\\a"), endungen, "Test", new File("c:\\out.txt"));
   }

   public void startScanning(File dir, String[] endungen, String wordToFind,  File outputFile) throws IOException{
      this.endungen = endungen;
      this.wordToFind = wordToFind;
      try {
         writer = new BufferedWriter(new FileWriter(outputFile));

         readDir(dir);         

      } finally{
         if(writer!= null)
            try { writer.close(); } catch (IOException e) { }         
      }

   }

   public void readDir(File dir) throws IOException{
      if(dir.isDirectory()){
         File[] files = dir.listFiles();
         for(File file: files)
            readDir(file);         
      }else{
         if(isValidFile(dir)){
            readInFile(dir);
         }
      }
   }

   public void readInFile(File file) throws IOException{


      BufferedReader reader =null;
      try {    

         reader = new BufferedReader(new FileReader(file));

         String line = null;
         int lineNumber =0;
         boolean found = false;
         while((line= reader.readLine()) !=null) {
            lineNumber++;
            if(line.contains(wordToFind)){
               if(!found) {
                  writer.write(file.getAbsolutePath()+"//"+file.getName()+":\r\n");
                  found = true;
               }     
               try {
                  writer.write(lineNumber+": "+line+"\r\n");
               } catch (IOException e) {
                  System.out.println("Fehler beim Schreiben!!");
                  e.printStackTrace();
               }

            }
         }
      }finally{
         reader.close();
      }

   }

   public boolean isValidFile(File f){
      if(endungen==null)
         return true;
      for(String endung: endungen){
         if(f.getName().toLowerCase().endsWith(endung)){
            return true;
         }
      }
      return false;
   }


}

Exception Handling is noch nicht optimal....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Ordner im Archiv (jar) auslesen Allgemeine Java-Themen 12
I Diverse Files aus Ordner auslesen Allgemeine Java-Themen 10
_user_q Verknüpfung einer .jar-Datei (liegt z. B. auf dem Desktop) im Autostart-Ordner erstellen? Allgemeine Java-Themen 20
Tobero .jar Dateine aus einem Ordner laden (Java 16) Allgemeine Java-Themen 5
G Datei aus Ordner wählen, ohne den Dateinamen im Pfad angeben zu müssen Allgemeine Java-Themen 4
Zrebna FileUtils.cleanDirectory() - aber einen sub-Ordner "verschonen" Allgemeine Java-Themen 1
M Ordner kopieren Allgemeine Java-Themen 5
B Datei/Ordner auf Server zugreifen/erstellen Allgemeine Java-Themen 2
I Klassen aus Jar-Dateien aus anderem Ordner laden Allgemeine Java-Themen 3
B Dateien / Bilder von "webapp" Ordner bekommen? Allgemeine Java-Themen 1
F Registry Ordner durchlaufen Allgemeine Java-Themen 1
Drachenbauer Wie sorge ich dafür, dass mein Spiel die ini-Datei in der Resourcen-ordner des Projektes schreibt? Allgemeine Java-Themen 5
L File beim Kopieren in einen anderen Ordner umbenennen Allgemeine Java-Themen 6
M Key-File im selben Ordner speichern? Allgemeine Java-Themen 18
R Setting Ordner fehlt Allgemeine Java-Themen 1
J Ordner und Datei Struktur einer War Datei Allgemeine Java-Themen 1
K getResource guckt im Target-Ordner...? Allgemeine Java-Themen 2
P Zum src Ordner einen Projektes navigieren Allgemeine Java-Themen 8
D Ordner commiten mit SvnKit Allgemeine Java-Themen 0
U javax.mail.Folder.list() zeigt nicht alle Ordner Allgemeine Java-Themen 5
D Kopieren von Dateien aus einem Ordner in einen anderen Allgemeine Java-Themen 6
I nach Image Load in ListView, kann Ordner nicht mehr gelöscht werden Allgemeine Java-Themen 1
P JDK installieren Kann man die Ordner in C:\Users\*\AppData\LocalLow\Sun\Java\.... löschen? Allgemeine Java-Themen 3
X Dateien von der Jar zum Ordner kopieren. Allgemeine Java-Themen 4
Ananaskirsche Input/Output Dateien im Ordner Allgemeine Java-Themen 8
A Input/Output Liste der Dateien in einem Ordner in einer Jar Datei erhalten Allgemeine Java-Themen 11
D Ordner auf Desktop erstellen(Pc unabhängig) Allgemeine Java-Themen 5
K NetBeans Ordner bei 'Clean&Build' automatisch in dist Verzeichnis kopieren Allgemeine Java-Themen 0
T Ordner samt Dateien kopieren Allgemeine Java-Themen 11
T Datei Ordner in Binär-Zahlenkette umwandeln Allgemeine Java-Themen 11
M JavaMail Spam-Ordner Allgemeine Java-Themen 2
B Dateien verschwinden aus bin Ordner?! Allgemeine Java-Themen 5
Minonos Einem Programm Zugriff auf bestimmte Ordner geben Allgemeine Java-Themen 5
M Pakete in Ordner Kopieren Allgemeine Java-Themen 7
P Ordner und Unterordner rückwärts durchsuchen Allgemeine Java-Themen 3
B Swing In JAR Ordner durchsuchen Allgemeine Java-Themen 2
B Ordner öffnen mittels Java in Linux-Umgebung Allgemeine Java-Themen 7
H Ordner in Zip integrieren Allgemeine Java-Themen 7
P Input/Output Ordner löschen --> geht nicht Datei --> Ja Allgemeine Java-Themen 6
I Java Ordner kopieren [Error] Allgemeine Java-Themen 6
S Dateien aus src-Ordner lesen Allgemeine Java-Themen 3
E nach dem Ordner suchen, wo .jar datei sich befindet Allgemeine Java-Themen 17
Developer_X Java FTP - Ordner auf Server erstellen Allgemeine Java-Themen 7
S Zugriffschutz auf Ordner Allgemeine Java-Themen 5
E ordner rekursiv durchsuchen Allgemeine Java-Themen 6
E Ordner rekursiv kopieren Allgemeine Java-Themen 8
P Datei aus Ordner wird nicht gelesen Allgemeine Java-Themen 2
4 Java Ordner Allgemeine Java-Themen 27
S auf freigebene Ordner zugreifen Allgemeine Java-Themen 6
L Ordner in ZipDatei erstellen Allgemeine Java-Themen 3
V Der Ordner von Java ist gelöscht und ich kann es nicht neu instalieren! Allgemeine Java-Themen 2
S Ordner wechseln wie bei chdir Allgemeine Java-Themen 6
D Ordner Verpfadung Allgemeine Java-Themen 19
B ProcessBuilder: kann Ordner im home nicht finden Allgemeine Java-Themen 2
N Dateien in Ordner einsortieren Allgemeine Java-Themen 11
G Ordner für Dateien finden Allgemeine Java-Themen 3
G Globalen Programm-Ordner herausfinden Allgemeine Java-Themen 7
K settings.properties in den src-ordner schreiben Allgemeine Java-Themen 2
D Ordner mit *.properties in classpath ? Allgemeine Java-Themen 5
D eclipse: Zugriff auf Ordner per code Allgemeine Java-Themen 4
S Einen Ordner zurück von der JarDatei Allgemeine Java-Themen 6
G Programm ausführen, sobald Ordner geöffnet? Allgemeine Java-Themen 21
MQue Ordner anlegen Allgemeine Java-Themen 7
B ZIP - Problem mit dem ersten Ordner Allgemeine Java-Themen 2
M JFileChooser: Ordner anlegen Allgemeine Java-Themen 3
J Verschieben ganzer Dateien (und Ordner) Allgemeine Java-Themen 3
Q ||| Nur Dateien einlesen ohne Ordner. Allgemeine Java-Themen 6
M Ordner nach neuester Datei durchsuchen Allgemeine Java-Themen 4
D Dateien und ordner ausgabe Allgemeine Java-Themen 5
G Subclipse + svn:ignore - Ordner manuel ignorieren? Allgemeine Java-Themen 2
Y Ordner löschen Allgemeine Java-Themen 2
D Auf Laufwerk bzw. Ordner auf einem Server zugreifen Allgemeine Java-Themen 7
T Ordner überwachen Allgemeine Java-Themen 6
TheJavaKid Ordner in Zip laden Allgemeine Java-Themen 21
D Linux Link wird als Ordner interpretiert? Allgemeine Java-Themen 2
A Alle Ordner durchsuchen und Dateien finden Allgemeine Java-Themen 2
F Alle Files im Ordner nach Dateinamen durchsuchen Allgemeine Java-Themen 28
F Dateien in einem Ordner zählen Allgemeine Java-Themen 15
H Klassen aus einem Ordner zur Laufzeit laden. Allgemeine Java-Themen 6
André B. Sucher erfasst nur Ordner Allgemeine Java-Themen 10
M ganzen Ordner mit URL angeben Allgemeine Java-Themen 4
K Ordner/Dateistruktur in Objekten nachbilden Allgemeine Java-Themen 6
N Inhalte aller Txts in einem Ordner Addieren Allgemeine Java-Themen 5
N Alledateien in einem Ordner in ein Vector speichern Allgemeine Java-Themen 19
F Ordner erstellen Allgemeine Java-Themen 3
M Bilder-Ordner kann im JAR-File nicht gefunden werden Allgemeine Java-Themen 15
B dynamisches Laden aller Klassen in einem Ordner ?? Allgemeine Java-Themen 5
L Input/Output Email mit großer Pdf Anhang auslesen? Allgemeine Java-Themen 6
Ernesto95 HTTP Mit JavaScript erzeugte dynamische Webseite auslesen und nach einem Schlüsselwort durchsuchen Allgemeine Java-Themen 6
K Bildschirm auslesen/ Text erkennen Allgemeine Java-Themen 5
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
T INI - Einträge auslesen Allgemeine Java-Themen 6
H Auslesen eines (LDAP-)Attributs in Active Directory Allgemeine Java-Themen 2
O PDF auslesen und verändern, was ist besser iText oder PDFBox ? Allgemeine Java-Themen 9
Robertop Status von Caps- und NumLock auslesen Allgemeine Java-Themen 1
Master3000 Java Konsole über Buffered Reader Zeilenweise auslesen ? Allgemeine Java-Themen 26
G Mac Package auslesen Allgemeine Java-Themen 17
W Versionsnummer auslesen - Regex ist zickig Allgemeine Java-Themen 2
F Junit Test + Cucumber - JSON auslesen und in einem weiteren Schritt nutzen Allgemeine Java-Themen 0

Ähnliche Java Themen

Neue Themen


Oben