Verzeichnis auslesen funktioniert nicht richtig.

  • Hey,
    mir ist gerade etwas merkwürdiges passiert. Ich arbeite, wie ihr wisst, an einem Projekt, das wie eine Cloud funktionieren soll. Um nun die Verzeichnisse eines Users auszulesen, habe ich folgende


    Funktion benutzt:



    Man sieht, dass alles schön gemacht ist *____* Jetzt gibt es aber ein Problem. Im Windows Explorer sieht das Verzeichnis so aus:


    [attachment=1]<!-- ia1 -->Filesystem_Explorer.png<!-- ia1 -->[/attachment]


    Das, was ich aber rausbekomme ist folgendes:


    [attachment=0]<!-- ia0 -->Filesystem_Error.png<!-- ia0 -->[/attachment]
    Ich habe die Problemstellen mal markiert.


    Jetzt frage ich verdammt nochmal: Wo ist der Fehler/ das Problem? Warum werden die Ordner als Dateien ausgegeben?


    Mit freundlichen Grüßen,
    Philipp E.

  • Ich hoffe ich habe das Problem richtig verstanden, deine Verzeichnisse sind laut PHP 0 Byte groß?


    Die Funktion heißt auch filesize und nicht dirsize 8)


    Für die Größe des Verzeichnisses müsstest du das Verzeichnis samt Unterverzeichnisse auslesen und alle Dateigrößen addieren.

  • Öhm, darum ging es jetzt eigentlich gar nicht. Ich meine, du siehst ja, dass ich da ein bisschen Design reingebracht habe. Für Ordner habe ich da so ein hübsches Bildchen mit einem Ordner gemacht und für Dateien ist da so ein Zettel. Doch warum werden die Ordner apps, documents und music als Dateien "angezeigt"? Eigentlich müsste da doch auch ein gelber Ordner kommen. Doch der HTML-Code ist falsch! Beim Ordner images funktioniert es ja aber bei den drei anderen nicht. Warum?

  • Kann es sein, dass du wieder dieses Problem hast, die Warnung jedoch unterdrückt und deshalb nicht ausgegeben wird, die Prüfung auf Verzeichnis-oder-nicht fehlschlägt und einfach der else-Zweig ausgeführt wird? Guck doch mal, ob is_file() auch fehlschlägt, etwa so:

    PHP
    <span class="syntaxdefault"></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">is_dir</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$eintrag</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">  echo </span><span class="syntaxstring">"Verzeichnis"</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault">elseif </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">is_file</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$eintrag</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">  echo </span><span class="syntaxstring">"Datei"</span><span class="syntaxkeyword">;<br />}<br />else{<br /></span><span class="syntaxdefault">  echo </span><span class="syntaxstring">"Weder Datei noch Verzeichnis, was dann?"</span><span class="syntaxkeyword">;<br />}</span><span class="syntaxdefault"> </span>


    @drPHIP132: Deine if-Abfrage funktioniert auch nicht, das hatten wir schon hier geklärt.


    Hoffe, ich konnte helfen,
    webmaster3000

  • Nein, ich unterdrücke beim Debuggen doch keine Fehlermeldung. Das wäre doch voll die Ironie. Also bei deinem kleinen Testscript kommt folgendes raus:


    VerzeichnisVerzeichnisWeder Datei noch Verzeichnis, was dann?Weder Datei noch Verzeichnis, was dann?Weder Datei noch Verzeichnis, was dann?VerzeichnisWeder Datei noch Verzeichnis, was dann?


    Es ist wie du schon gesagt hast, aber waruuuum?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!