Frage zur DirectoryList-Klasse von Dennis Wronka

schoko

Erfahrenes Mitglied
Hallo,

ich habe eine Frage zu der DirectoryList-Klasse von Dennis Wronka. Und zwar würde ich gern einen Button zum erstellen einens neuen Ordners einbauen.
Das heißt, es soll ein Ordner im jeweiligen Aktiven-Verzeichnis erstellt werden.

Beispiel:

PHP:
Ordner1
Ordner2
     Ordner1
     Ordner2
        Datei1
Ordner3

Bei diesem Beispiel bin ich nun gerade in Ordner2/Ordner2 und genau dort soll nun auch das neue Verzeichnis, per Klick auf den Button, erstellt werden.

Mein Problem ist die feststellung des aktuellen Verzeichnisses. Wie bekomm ich den Namen des Verzeichnisses raus in dem ich gerade bin?
Dieses brauch ich natürlich um einen neuen Ordner dort zu erstellen.

Danke für jede Hilfe!!
 
Wie wechselst Du denn die Verzeichnisse?
Ich denke dass man abhaengig davon auch das aktive Verzeichnis dann feststellen kann.
 
Dann kannst Du aus $_GET['show'] herausbekommen wo Du Dich gerade befindest.
Dort werden Dir mit Kommata getrennte Zahlen uebergeben, die die Position im Dateisystem angeben.
Wenn Du dort zum Beispiel 4,2 uebergeben bekommst, dann befindest Du Dich im 3. (es wird ja bei 0 zu zaehlen angefangen) Unterverzeichnis unter dem 5. Unterverzeichnis im Hauptverzeichnis.
Dein Verzeichnis Ordner2/Ordner2 wuerde somit 1,1 entsprechen.
 
Nichts zu danken.
Wenn Du mit den Werten aus $_GET['show'] arbeitest wird es wohl das beste sein diese in ein Array zu exploden und dann mit einer rekursiven Funktion den Verzeichnisnamen zu ermitteln.
 
So ich steh nun schon vor dem nächsten Problem...

Ich habe nun per explode die Ziffern der Dirs extrahiert und möchte nun den namen des entsprechenden Ordners hiermit ausgeben::

PHP:
echo $dirtree->subdirs[$folders[0]]->subdirs[$folders[1]]->name;

($folder[0] und $folder[1] sind die Arrays in welchem die "Ordner-Ziffern" stehen)

Das Problem ist nun, dass ich keine Ausgabe des Ordnernamen bekommme. Es klappt lediglich wenn ich es so mache:

PHP:
echo $dirtree->subdirs[1]->subdirs[0]->name;

...also ohne Arrays...

Weißt du woran das liegen könnte?
 
Wie sieht denn Dein Code genau aus?

Mal ein spontanes Beispiel (da brauchst Du nichtmal exploden):
PHP:
function getdirname($dirlist,$dirstring)
{
	$pos=strpos($dirstring,',');
	if ($pos!=false)
		{
			$val=substr($dirstring,0,$pos);
			$dirstring=substr($dirstring,$pos+1);
			return getdirname($dirlist->subdirs[$val],$dirstring);
		}
	else
		{
			return $dirlist->subdirs[$dirstring]->name;
		}
}
echo getdirname($dirtree,$show);
$show wird ja bereits durch $show=rawurldecode($_GET['show']); zur Verfuegung gestellt, also brauchst Du Dich darum nicht kuemmern.

Der Vorteil daran ist, dass der Code unabhaengig von der Anzahl der Ebenen funktioniert. Es koennen also auch mehr als 2 Ebenen unterhalb des Hauptverzeichnisses angesprochen werden.
 
Zurück