Announcement

Collapse
No announcement yet.

verzeichnis und dateianzeige!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • verzeichnis und dateianzeige!

    hi,

    ich möchte einen viewer für html-seiten programmieren! wie kann ich eine verzeichnis und dateiauswahl programmieren?

    gruß

    markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Hallo Markus

    schau Dir mal
    Java ist auch eine Insel Kapitel 12.1.6 an.

    http://www.galileocomputing.de/openbook/javainsel3/

    Dort ist ein Algorithmus aufgelistet mit dem du sicher etwas anfangen kannst.

    Bye Carste

    Comment


    • #3
      Nun, das ist nicht schwierig, denn die Java Standard-Bibliothek stellt komfortable Methoden bereit. Am Besten ist es, das grundsätzliche Vorgehen an Hand eines einfachen Beispiels (der Quellcode befindet sich am Ende des Artikels) zu erläutern.

      Das Programm listet alle Dateien eines gegebenen Verzeichnisses und druckt dieselben anschließend auf der Konsole aus. Noch ein Hinweis in eigener Sache. Der Autor hat das <i>JDK1.4.1</i> verwendet. Ältere JDK-Versionen bieten eventuell nicht den gleichen Leistungsumfang (Klassen und Methoden). Und: Es wird vorausgesetzt, dass Java auf Ihrer Maschine installiert ist (ermitteln Sie das mit diesem Befehl: <i>which java</i>).

      Jetzt schauen wir uns die Klasse <i>DirLister</i> genauer an. Zuerst werden, wie in Java üblich, alle Klassen und Exceptions aus dem <i>io</i>-Package verfügbar gemacht (<i>import</i>-Anweisung).

      Die Methode <i>listDirectory(File dir)</i> leistet die eigentliche Arbeit; sie erhält als Parameter ein <i>File</i>-Objekt (welches den Startpunkt, sprich den Verzeichnispfad, bestimmt).

      Die <i>if</i>-Anweisung prüft, ob der Pfad korrekt ist (existiert das Verzeichnis, richtige Schrweibweise et cetera). Ist dem so, wird mit <i>File [] files = dir.listFiles()</i> der Inhalt des Verzeichnisses in ein Array (<i>File [] files</i>) eingelesen. Tritt ein Fehler auf, werden Sie Zeuge einer Ausnahme vom Typ <i>IOException</i>. Und das war im Grunde schon alles.

      Betrachten wir nun die <i>main</i>-Funktion, den Startpunkt des Programmes. Zuerst sehen Sie den Konstruktor-Aufruf (die Objekt-Erzeugung), eine Zeile darunter folgt der Methoden-Aufruf (<i>dl.listDirectory(new File("."));</i>). Im Beispiel werden alle Dateien des aktuellen Verzeichnisses gelistet (der Parameter ".").

      Es muss erwähnt werden, dass die Ausgabe natürlich gefiltert werden kann. Die Methode <i>listFiles()</i> ist sinnvollerweise überladen und erlaubt somit die Übergabe verschiedener Parameter. Das heißt mit anderen Worten, Sie können dieser Methode zusätzlich ein <i>FileFilter</i>-Objekt übergeben. Die JDK-Dokumentation enthüllt die Details. Soweit so gut.

      Nun zum praktischen Teil. Zuerst muss die Klasse kompiliert werden; es ist in diesem Zusammenhang wichtig darauf zu achten, dass Klassen- und Dateiname identisch sind! Ansonsten bekommen Sie Ärger mit dem Java-Compiler (der Autor hat <i>jikes</i> verwendet). Tippen Sie Folgendes auf der Shell ein:
      <PRE>
      javac DirLister.java
      </PRE>
      Nun können wir das Programm ausführen:
      <PRE>
      java DirLister
      </PRE>
      Das Programm muß nicht auf das aktuelle beziehungsweise auf ein einzelnes Verzeichnis beschränkt bleiben. Falls Sie beabsichtigen, einen Baum zu durchlaufen, müssen Sie die Methode entsprechend anpassen (Stichwort: Rekursive Funktionen). Diverse Java-Bücher liefern Beispiele (Tipp: Guido Krüger: Handbuch der Java-Programmierung, Addison-Wesley).

      Schlussendlich kann die Klasse dann in Servlets beziehungsweise in JSP-Seiten (JSP=Java Server Pages) eingebunden werden, wo die passende HTML-Ausgabe generiert wird.

      Der Source-Code:
      <PRE>
      import java.io.*;

      public class DirLister {

      public File[] listDirectory(File dir) throws IOException {

      if (!dir.isDirectory() ) {
      throw new IOException("\nKein solches Verzeichnis -> " + dir.getName());
      }

      File [] files = dir.listFiles();
      return files;
      }

      //.................................................. ..................................

      public static void main(String [] args) {

      try {
      DirLister dl = new DirLister(); // CTOR
      File [] files = dl.listDirectory(new File(".")); // aktuelles Verzeichnis

      // Ausgabe auf der Konsole
      System.out.println();

      for (int i=0; i < files.length; ++i) {
      System.out.println(files[i]);
      }

      System.out.println();

      } catch (Exception ex) { System.out.println(ex.toString()); }

      } // end main
      } // end class
      </PRE>
      Das war es - frohes Schaffen.

      Thomas Kaufman

      Comment

      Working...
      X