Jpg-Dateien in Unix-Verzeichnis suchen

Hallo,

ich möchte Dateien mit der Endung *.jpg aus einem Verzeichnis auf einem Unix-Server mit folgender Syntax suchen (um später per Zufall eine Datei anzuzeigen):

verzeichnis = http://test123.test.dir:1234/test/test/

Ich habe es damit probiert:

File dir = new File(verzeichnis);
File[] files = dir.listFiles();

Leider funktioniert das nicht. Liegt vielleicht daran, dass es sozusagen eine web-Adresse ist. Kann mir jemand einen Tipp geben?

Vielen Dank schon mal.

Gruß Ute

Hallo Ute,

vielleicht so:

String verzeichnis= "http://test123.test.dir:1234/test/test/";
File dir = new File(new URI(verzeichnis));
File[] files = dir.listFiles();

Gruß
Torsten

Die File-Klasse wird dir da nich weiterhelfen.
Versuchs mal mit der (HTTP)URLConnection-Klasse.

Oder die URL-Klasse

Hallo Torsten,

danke für die schnelle Antwort.
Leider klappt es damit nicht, folgende Exception wird angezeigt:

java.lang.IllegalArgumentException: URI scheme is not „file“

Fällt dir dazu vielleicht noch etwas ein :wink:?

Gruß Ute

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Ute.

ich möchte Dateien mit der Endung *.jpg aus einem Verzeichnis
auf einem Unix-Server mit folgender Syntax suchen (um später
per Zufall eine Datei anzuzeigen):

verzeichnis = http://test123.test.dir:1234/test/test/

Ich habe es damit probiert:

File dir = new File(verzeichnis);
File[] files = dir.listFiles();

Leider funktioniert das nicht. Liegt vielleicht daran, dass es
sozusagen eine web-Adresse ist. Kann mir jemand einen Tipp
geben?

Wenn Du über eine Webadresse ein Verzeichnislisting erhältst,
ist das nichts weiter als eine HTML-Seite mit einer irgendwie
formatierten Liste mit Dateinamen. Wie diese Liste genau
in HTML codiert ist, hängt vom Webserver und Deinen Einstellungen
ab.

Das einzige was Du hier tun kannst, um an die Dateinamen
zu kommen, ist Dir die HTML-Seite mit dem Dateilisting
für Deinen konkreten Fall genau anzusehen und dafür ein
Programm zu schreiben, was aus dem HTML die Dateinamen
herausschnibbelt - keine schöne Arbeit.

Hier mal ein Auszug aus einem vom Apache-Webserver erzeugten
Verzeichnislisting, um einen Eindruck von der Bastelarbeit
zu bekommen, die Dir bevorsteht:

 Index of /icons Index of /icons 


    [Name](?C=N;O=D)
    [Last modified](?C=M;O=A)
    [Size](?C=S;O=A)
    [Description](?C=D;O=A)
    [Parent Directory](/)
    [a.gif](a.gif) 23-Aug-1999 22:33 246
    [a.png](a.png) 30-May-2001 00:54 293
    ...



Einfacher wird es mit einem direkten Zugriff auf das Dateisystem
des Servers:

(a) **lokaler Dateisystemzugriff**
Wenn Dein Programm auf dem Server selbst läuft, 
kannst Du mit Deinem obigen File-Code arbeiten.

(b) **FTP-Zugriff**
Hierbei verbindest Du Dich per FTP auf das Server-Dateisystem.
Dann kannst Du auch fertige Libraries verwenden, die Dir
den Verzeichnisinhalt zurückliefern, siehe z.B. 
[http://www.javaworld.com/javaworld/jw-04-2003/jw-040...](http://www.javaworld.com/javaworld/jw-04-2003/jw-0404-ftp-p2.html)

Gruß,
-Andreas.

Wenn es sich bei dem Quelltext der Html-Seite um XHTML handelt (bei diesem Beispiel nicht der Fall), kannst Du auch mit einem xml-Pharser drüber gehen, das wäre dann einfacher als das da rauszufriemeln.

Hallo Andreas,

danke für die Infos. Ich habe mich vor der „Bastelarbeit“ gedrückt und eine Tabelle in der Datenbank erzeugt, in der ich die Dateinamen ablege. So kann ich mit einem select * alle in mein Programm holen und per random auf eine zugreifen, die ich mit http… direkt ansprechen kann.

Gruß Ute

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]