PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verzeinisbaum erstellen ..



schlams
18-10-2004, 11:21
hallo zusammen ..

Ich hab volgendes problem, ich will von einem rechner auf dem kein webserver zugriff haben darf einen verzeichnisbaum ausgeben. Und zwar sollen nur die verzeichnisse zu sehen sein nicht aber die dateien.
nun hab ich mir folgendes überlegt ich erstelle ein perl script was mir die verzeichnis strucktur ausliest und anschließend eine html seite generiert die denn verzeichnisbaum abbildet .. diese dat übertrage ich dann per rsync zum webserver...

dir ordner sollena uch wirklich als baum ausgegeben werden so das ich den obersten anklicke und er die nächste ebene anzeigt usw...
dann soll zusätzlich jeder ordner anklickbar in form einer checkbox .. die angeklickten verzeichnisse sollen dann wieder in eine dat gespeichert werden diese wird wieder vom "verzeichnisbaum REchner" abgeholt und ausgewertet...


ich bin nun so weit das ich die verzeichnisstrucktur auslesen kann und sie wieder in einer html dat. ausgeben kann nur leider noch nicht als baum und genau da steh ich nun vor einem problem ich weiß nicht wie ich die hirachie von dem baum auslesen kann und sie dann passend ausgeben kann...
hier das script..


use File::Find;

my $dir = "/home/mar/perl/";


find({wanted => sub {
push(@tree, $_), if -d,;
},
no_chdir =>1 }, "$dir");

print $dir;
$n=@tree;
$n--;



print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Strict//EN\"\n";
print " \"http://www.w3.org/TR/html4/strict.dtd\"> \n";
print "<html> \n";
print "<head> \n";
print "<title>Text des Titels</title> \n";
print "</head> \n";
print "<body> \n";
print "<a href=\"$tree[1]\">$dir</a>";
print "<br> \n";
print "<form action=\"input_checkbox.htm\"> \n";
print " <table> \n";

for ($i =1 ; $i <=$n; ++$i)
{
print " <tr> \n";
print " <td> \n";
print " <a href=\"$tree[$i+1]\"\>$tree[$i]</a> \n";
print " </td> \n";
print " <td> \n";
print " <input type=\"checkbox\"name=\"$tree[$i]\" value=\"$tree[$i]\"> \n";
print " </td> \n";
print " </tr> \n";
}

print " </table> \n";
print "</form> \n";
print "</body> \n";
print "</html> \n";



ach ich sollte vielleicht dazu sagen das ich nicht grad der held im Programieren bin, wenn ihr einfache odere bessere ideen habt dann teilt sie mir am besten mit =)
ich glaub das es sicher was einfacheres gibt als das was ich gemacht hab *g*

Vielen dank schon mal
Markus