Verzeichnisdurchlauf

Status
Nicht offen für weitere Antworten.
Ich muss ein Programm erstellen, welches einen Ordner durchsucht, und die Dateien und Unterordner und deren Dateien anzeigt. Weiß irgendwer, wie das geht?
 
danke erstmal mit dem Link.
mein Quellcode sieht jetzt so aus:
Code:
import java.io.File;

public class Verzeichnis
{

public void  listDir(File dir)
{

File f = new File("C:\\Dokumente und Einstellungen\\nwinter\\Desktop\\Beispielprogramme");
File[] fileArray = f.listFiles();

   File[] files = dir.listFiles();
   if (files != null) {
      for (int i = 0; i < files.length; i++) {
         System.out.print(files[i].getAbsolutePath());
         if (files[i].isDirectory()) {
            System.out.print(" (Ordner)\n");
            listDir(files[i]); // ruft sich selbst mit dem
               // Unterverzeichnis als Parameter auf
            }
         else {
            System.out.print(" (Datei)\n");
         }
      }
   }
}
}

Ich kann das Programm compilieren, aber wenn ich es ausführen will, wird folgender Fehler angezeigt:

Exception in thread "main" java.lang.NoSuchMethodError: main

Wenn ichs richtig verstanden habe fehlt "main". aber in welcher Zeile und wie muss ich das einbauen?
 

The_S

Top Contributor
Wenn du eine Klasse mit java ausführen willst, brauchst du die Methode

Code:
public static void main(String[] args) {
}

von wo aus dann alles weitere gestartet wird.
 

KSG9|sebastian

Top Contributor
also quasi

Code:
public static void main(String[] args){
  listDir(new File("c:\\ordner"));
}

main() ist der Einstiegspunkt ein dein Programm. Dort musst du deine Logik quasi anstoßen.
 
das is schon klar. ich hatte das von den FAQs kopiert.
aber wie baue ich dann das
Code:
public void  listDir(File dir)
da ein?
[/code]
 

KSG9|sebastian

Top Contributor
Code:
import java.io.File; 

public class Verzeichnis 
{ 

public void  listDir(File dir) 
{ 

File f = new File("C:\\Dokumente und Einstellungen\\nwinter\\Desktop\\Beispielprogramme"); 
File[] fileArray = f.listFiles(); 

   File[] files = dir.listFiles(); 
   if (files != null) { 
      for (int i = 0; i < files.length; i++) { 
         System.out.print(files[i].getAbsolutePath()); 
         if (files[i].isDirectory()) { 
            System.out.print(" (Ordner)\n"); 
            listDir(files[i]); // ruft sich selbst mit dem 
               // Unterverzeichnis als Parameter auf 
            } 
         else { 
            System.out.print(" (Datei)\n"); 
         } 
      } 
   } 
} public static void main(String[] args){ 
  listDir(new File("c:\\ordner")); 
} 
}

na so :D
 

The_S

Top Contributor
Wenn du dir noch solche Fragen stellst, solltest du dringend noch mal in dem Anfängerbuch deiner Wahl nachschlagen.

Sebastian hat eine Kleinigkeit bei seinem Code vergessen. Korrekt muss es so heißen

Code:
public static void main(String[] args) {
Verzeichnis dir = new Verzeichnnis();
dir.listDir(new File("C:\\ordner"));
 

Leroy42

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Wenn du dir noch solche Fragen stellst, solltest du dringend noch mal in dem Anfängerbuch deiner Wahl nachschlagen.

Da hast du Recht, aber auf der anderen Seite verwundert mich wie Geschäftsmann
auf Anhieb eine (vermutlich) korrekte Rekursion zustande bekommt, ohne die
allertiefsten Grundlagen zu kennen. :shock:

Ich vermute mal, er ist ein, in Java quereingestiegener, Programmierprofi. :D
 
heute ist nicht mein tag :cry: ..............ich hab alles so gemacht, wie ihr es gesagt habt, trotzdem bekomme ich diese Fehler:

C:\Dokumente und Einstellungen\nwinter\Desktop\Beispielprogramme\Verzeichnis.java:9: cannot find symbol
symbol : method listDir(java.io.File)
location: class Verzeichnis
dir.listDir(new File("C:\\Dokumente und Einstellungen\\nwinter\\Desktop\\Beispielprogramme"));
^
C:\Dokumente und Einstellungen\nwinter\Desktop\Beispielprogramme\Verzeichnis.java:15: cannot find symbol
symbol : method listFiles()
location: class Verzeichnis
File[] files = dir.listFiles();
^
C:\Dokumente und Einstellungen\nwinter\Desktop\Beispielprogramme\Verzeichnis.java:21: cannot find symbol
symbol : method listDir(java.io.File)
location: class Verzeichnis
listDir(files); // ruft sich selbst mit dem Unterverzeichnis als Parameter auf



wo steht denn der Teil, wo die Methoden listDir und listFiles stehen?

ich finde sie nicht.

Scheiß Aufgabe :autsch:
 
Code:
import java.io.File;
import java.io.*;

public class Verzeichnis
{

public static void main(String[] args) {
Verzeichnis dir = new Verzeichnis();
dir.listDir(new File("C:\\Dokumente und Einstellungen\\nwinter\\Desktop\\Beispielprogramme"));
{

File f = new File("C:\\Dokumente und Einstellungen\\nwinter\\Desktop\\Beispielprogramme");
File[] fileArray = f.listFiles();

   File[] files = dir.listFiles();
   if (files != null) {
      for (int i = 0; i < files.length; i++) {
         System.out.print(files[i].getAbsolutePath());
         if (files[i].isDirectory()) {
            System.out.print(" (C:\\Dokumente und Einstellungen\\nwinter\\Desktop\\Beispielprogramme)\n");
            listDir(files[i]); // ruft sich selbst mit dem Unterverzeichnis als Parameter auf
            }
         else {
            System.out.print(" (C:\\Dokumente und Einstellungen\\nwinter\\Desktop\\Beispielprogramme)\n");
         }
      }
   }
}
}
}
 

KSG9|sebastian

Top Contributor
Code:
import java.io.File; 
import java.io.*; 

public class Verzeichnis 
{ 

  public static void main(String[] args) { 
    Verzeichnis dir = new Verzeichnis(); 
    dir.listDir(new File("C:\\Dokumente und Einstellungen\\nwinter\\Desktop\\Beispielprogramme")); 
  }
  public void listDir(File f){
    File[] fileArray = f.listFiles(); 
    File[] files = dir.listFiles(); 
     if (files != null) { 
      for (int i = 0; i < files.length; i++) { 
         System.out.print(files[i].getAbsolutePath()); 
         if (files[i].isDirectory()) { 
            System.out.print(" (C:\\Dokumente und Einstellungen\\nwinter\\Desktop\\Beispielprogramme)\n"); 
            listDir(files[i]); // ruft sich selbst mit dem Unterverzeichnis als Parameter auf 
         } 
         else { 
            System.out.print(" (C:\\Dokumente und Einstellungen\\nwinter\\Desktop\\Beispielprogramme)\n"); 
         } 
      } 
     } 
  } 
}

so müssts passen
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben