Sven: Verzeichnisstruktur abbilden

Hallo SELFHTML-Gemeinde !!!

Wieder einmal muß ich mich an euch wenden, weil ich einfach nicht mehr weiter weiß.

Ich arbeite auf einem Unix-Server mit Apache und Samba.
Nun soll ich auf der Homepage eine Funktionalität einbauen, die mir einen Verzeichnisbaum zeigt (der dem File-Server-Verzeichnisbaum entspricht) - das hab ich hinbekommen.
Nun soll beim Anklicken eines Verzeichnisses im linken Frame, im rechten Frame alle Dateien in diesem Verzeichnis angezeigt werden und das mit einige Zusatzinformationen wie Größe, Typ usw.
Gibt es da evtl. schon ein vorgefertigtes Modul oder kann mir jemand da weiterhelfen, weil ich leider noch nicht so weit in die Perl/GI-Welt vorgedrungen bin.
Würd mich freuen, wenn mir da jemand unter die Arme greifen könnte.

Gruß Sven

  1. Hallo Sven,

    guck mal hier:http://cgi.xwolf.com/perl/autoindex.txt oder auch hier:http://www.i-netlab.de/knowman/index.htm, da ist ein funktionierendes Beispiel...

    Viele Grüße, Rolf

  2. Hi,

    Nun soll beim Anklicken eines Verzeichnisses im linken Frame, im rechten Frame alle Dateien in diesem Verzeichnis angezeigt werden und das mit einige Zusatzinformationen wie Größe, Typ usw.

    <a href="script.pl?showdir=/path/to/dir" target="rechts">/path/to/dir</a>

    Gibt es da evtl. schon ein vorgefertigtes Modul oder kann mir jemand da weiterhelfen, weil ich leider noch nicht so weit in die Perl/GI-Welt vorgedrungen bin.

    perldoc -f opendir
    perldoc -f readdir
    perldoc -f closedir
    perldoc CGI

    Kurzfassung (ungetestet):

    #!/usr/bin/perl -w
    use strict;
    use CGI ':standard';
    print header;
    opendir(DIR, param('showdir')) or die "Kann ".param('showdir')." nicht oeffnen: $!";
    print while (readdir DIR);
    closedir(DIR);

    Cheatah

    1. Hi Cheatah !!!

      Danke für den Tip.
      Hat zwar kurz gedauert bis ich gemerkt habe, daß man das

      use strict;

      rauslassen muß, aber jetzt läuft‚s mit:

      #!/usr/bin/perl -w
      use CGI qw(:standard :html3);
      print header, start_html('Files');
      opendir(DIR, param('showdir')) die "Could not open directory.";
      print "<H1>Files from ",param('showdir'),".</H1>";
      while ($name = readdir(DIR))
      {
           print "$name";
           print "<br>";
      }
      closedir(DIR);
      print "</BODY></HTML>";

      Vielen Dank.
      Sven

      1. Hi,

        Hat zwar kurz gedauert bis ich gemerkt habe, daß man das
        use strict;
        rauslassen muß, aber jetzt läuft‚s mit:

        nö, muß man nicht. Wenn es Dir eine Fehlermeldung ausspuckt, solltest Du dieser nachgehen, denn dann hast Du irgendetwas zumindest "unschön" gemacht.

        Was hat Dir strict denn gesagt?

        while ($name = readdir(DIR))

        while (my $name = readdir(DIR))

        print "$name";

        print $name;

        Oder aber gleich

        print "$name<br>";

        Aber bitte nicht einzelne Variablen mit Doublequotes umgeben. Das ist, als würdest Du ein eingepacktes Geschenk noch einmal in Geschenkpapier einwickeln - es kostet nur Zeit :-)

        Cheatah