Wie bekommt man alle Filenamen eines Webserver Verzeichnisses

friednoodles

Aktives Mitglied
Hi, ich habe auf einem Webserver mehrere .htm Dateien liegen und möchte diese als Files in Java haben damit ich sie weiter verarbeiten kann.
Dafür möchte ich im ersten Schritt erst wissen welche Dateien überhaupt auf dem Server liegen.

Mit meinem bisherigen Ansatz kann ich nur den Inhalt von testfile.htm lesen.
Java:
    public static void readFile() throws Exception {
        URL url = new URL(
                "https://test.website.de/testfile.htm");
        BufferedReader read = new BufferedReader(new InputStreamReader(url.openStream()));
        String i;
        while ((i = read.readLine()) != null)
            System.out.println(i);
        read.close();
    }


Bitte "throws Exception" ignorieren, ich weiß wie schlecht das ist. Hab das nur so weil ich es zum testen kurz halten wollte.
 
HTTP selbst bietet hier keinerlei eingebaute Möglichkeiten. Einige Webserver unterstützen z.B. das Generieren einer HTML-Seite, wenn man eine URL aufruft, die auf ein Verzeichnis mapped, in der alle Dateien und Ordner gelistet sind. Das ist aber abhängig von der Webserver-Konfiguration und absolut nicht Standard. Letztlich ist es auch ein Sicherheitsaspekt, dass man nicht einfach alle Dateien (bzw. ja URLs) listen kann.

lesenden Zugriff auf das Zielverzeichnis vorausgesetzt: https://www.mkyong.com/java/java-how-to-list-all-files-in-a-directory/ (Spoiler: ja, auch mit Streams....)
Hier geht es nicht um den Zugriff per OS Dateisystem API, sondern per HTTP.
 
Ohje, mit Webserver Konfiguration kenne ich mich gar nicht aus.
Könnt Ihr mir einen Anhaltspunkt geben auf was ich konkret achten muss bei der Konfig damit ich den Zugriff erhalte den ich brauche? Oder gibt es ein Tutorial dafür? Wüsste nicht mal nach welchen Keywords ich suchen müsste
 
Also Zugriff auf Dateien erfolgt in der Regel nicht per HTTP. HTTP ist ja das Hyper Text Transfer Protokoll - also für Hyper Text gedacht. Für File Transfers gibt es das File Transfer Protokoll - also FTP. Und das natürlich in einer Sicheren Variante also SFTP oder FTPS. (Wobei das eigentliche sichere FTP das FTPS ist so wie HTTPS das sichere HTTP ist. SFTP ist das File Transfer Protokoll das z.B. bei SSH mit vorhanden ist und von den cmd Tools scp und sftp genutzt wird.)

Wenn Du direkten Zugriff auf den Server per SSH hast, dann wäre der einfachste Weg, das entsprechende Protokoll zu nutzen z.B. in Form einer Library - z.B. mittels http://www.jcraft.com/jsch/.
 

Neue Themen


Zurück
Oben