Beitrag von horstees (229 Beiträge) am Donnerstag, 27.November.2003, 23:28.
@Perl experlen
Hallo!
Kann man beim Durchlaufen eines Ordners prüfen (mit perl)
ob sich da eine Datenbank tummelt oder ein Unterordner?
Beide liegen da ohne .sonstwas Endung rum.
Gibt es da sowas wie - meinetwegen - : is_a_dir( $kandidat ) ?
Das Ganze will ich für eine automatisch generierte Linkliste
im eigenen Projekt nutzen.
horstees
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 27.November.2003, 23:54.
Re: @Perl experlen
auch bei selfhtml:
print "Die unbekannte Datei ist ",-d $UnbekannteDatei ? "ein Verzeichnis<br>\n" : "kein Verzeichnis<br>\n";
-d ermittelt, ob es sich um ein Verzeichnis handelt.
Antworten
Beitrag von horstees (229 Beiträge) am Freitag, 28.November.2003, 00:45.
Re: @Perl experlen
Danke,
probier ich morgen mal.
h
Antworten
Beitrag von horstees (229 Beiträge) am Freitag, 28.November.2003, 23:27.
Re: @Sander
Hallo Sander,
doch noch ne Frage.
Wenn ich meinen Ordner durchlaufe und mit if -d $datei auf ein Verzeichnis teste, wird mein 'Grafik'-Verzeichnis nicht als solches erkannt, dafür wird mir ein Verzeichnis namens '.' und ein zweites namens '..' als Verzeichnis genannt.
Damit ist noch nicht das erreicht, was ich haben wollte.
Hänge ich den 'Punkt' an meinen Pfad zum durchsuchten Ordner an, zeigt er
( glaube ich, sah jedenfalls so aus ) alle Inhalte aller Unterverzeichnisse im Hauptverzeichnis, nicht aber, was ja für mich noch günstig gewesen wäre, den Inhalt nur von 'Grafik'.
Wirst Du aus meinen Beschreibungen schlau? ;-)
Ich selbst habe da meine Probleme ;-)
Ich könnte natürlich den Namen des Ordners auf _dir enden lassen etc. und ihn so von DBs unterscheiden, aber irgendwie schmeckt mir das noch nicht so richtig, vor allem käme meine zukünftige Linkliste durcheinander, wenn andere mal einen Unterordner anlegen und sich an die Namenskonvention nicht halten.
Gibt's noch 'ne Idee?
horstees
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 29.November.2003, 18:38.
Re: @Sander
Antworten
Beitrag von horstees (229 Beiträge) am Samstag, 29.November.2003, 20:03.
Re: @Sander
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 29.November.2003, 22:58.
Re: @Sander
Nö, sieht eher so aus als ob Du im falschen Verzeichnis nachschaust...
"." = das aktuelle dir
".." = das dir darüber
Du schaust also in einem leeren Verzeichnis nach... Lass Dir mal ausgeben, womit die Variable gefüllt ist, auf die Du testest...
Antworten
Beitrag von horstees (229 Beiträge) am Samstag, 29.November.2003, 23:50.
Re: @Christoph
Hallo erstmal.
Der läuft schon das richtige Verzeichnis durch, ich hatte mir Namen des Verzeichnisses und die einzelnen Inhalte ausgeben lassen.
Da stehen dann so Namen drin wie 'allgemeines', allgemeines.fields' usw.
genau so, wie es auch das FTP Programm zeigt.
Es gibt aber doch noch eine MERKWÜRDIGKEIT:
Es existiert da eine namenlose DB '.fields' in dem Verzeichnis und
macht die den Ärger .
In anderen Verz gibts die nicht ;-).
Und Löschen kann ich die nicht.
;-) Kennst Du jemanden? ;-)
horstees
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Sonntag, 30.November.2003, 00:13.
Re: @Christoph
Poste doch einfach mal den Code den Du benutzt ;-)
Antworten
Beitrag von horstees (229 Beiträge) am Sonntag, 30.November.2003, 01:00.
Re: @Christoph
Hier mein Script:
use strict;
use CGI::Carp qw(fatalsToBrowser);
$query = $ENV{QUERY_STRING};
@pairs=split(/&/, $query);
print "Content-type: text/html\n\n" ;
print <<EOF ;
<html>
<head><title>Templates</title></head>
<body>
EOF
my $pair;
my $value;
my $name;
my $element;
my @ordner_inhalte;
foreach $pair (@pairs)
{
($name, $value)=split(/=/, $pair);
}
opendir(HAUPTORDNER,"../../baseportal/$value");
@ordner_inhalte = readdir(HAUPTORDNER);
closedir(HAUPTORDNER);
foreach $element (@ordner_inhalte)
{
print "Die Datei - $element - ist ",-d $element ? "ein Verzeichnis<br>" : "<b>kein</b> Verzeichnis<br>";
print "Die Datei - $element - ist ",-e $element ? "eine DB<br>" : "<b>keine</b> DB<br>";
}
print <<EOF ;
EOF
Auszug aus der Ausgabe:
Die Datei - . - ist ein Verzeichnis
Die Datei - . - ist eine DB
Die Datei - .. - ist ein Verzeichnis
Die Datei - .. - ist eine DB
...
Die Datei - grafik_hidden_dir - ist kein Verzeichnis # is wohl eins ;-)
Die Datei - grafik_hidden_dir - ist keine DB
...
Die Datei - projekte.fields - ist kein Verzeichnis
Die Datei - projekte.fields - ist keine DB # is wohl eine ;-)
???
horstees
Antworten
Beitrag von horstees (229 Beiträge) am Sonntag, 30.November.2003, 15:18.
Ohne Pfad blieb alles fad... Es funktioniert natürlich
Obiger Code muss natürlich so heissen:
$datei = "../../baseportal/$value/$element";
print "Die Datei - $datei - ist ", -d $datei ? "ein Verzeichnis<br>\n" : "<b>kein</b> Verzeichnis<br>\n";
print "Die Datei - $datei - ist ", -e $datei ? "eine DB<br>\n" : "<b>keine</b> DB<br>\n";
Dann funktionierts auch.
Danke für die Gelegenheit selbst drauf zu kommen ;-)
horstees
Antworten
Beitrag von horstees (229 Beiträge) am Sonntag, 30.November.2003, 18:16.
Ohne Pfad blieb alles fad... Es funktioniert natürlich
Obiger Code muss natürlich so heissen:
$datei = "../../baseportal/$value/$element";
print "Die Datei - $datei - ist ", -d $datei ? "ein Verzeichnis<br>\n" : "<b>kein</b> Verzeichnis<br>\n";
print "Die Datei - $datei - ist ", -e $datei ? "eine DB<br>\n" : "<b>keine</b> DB<br>\n";
Dann funktionierts auch.
Danke für die Gelegenheit selbst drauf zu kommen ;-)
horstees
Antworten