Announcement

Collapse
No announcement yet.

Größe von Verzeichnisbäumen ermitteln.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Größe von Verzeichnisbäumen ermitteln.

    Hallo,

    Ich hänge z.Z. ein einem Problem fest. Ich ermittle Verzeichnissbäume und gebe sie aus. (Zuvor speicher ich sie in eine Datei) Die Dateigrößen bekomme ich ja ganz einfach mit stat. Verzeichnissgröen muss ich ja errechen. Und genau da hänge ich fest. Ich hab keine wirkliche Idee, wie ich die erechnen soll. Kleines Beispiel: So sieht mein Verzeichnisbaum aus: V = Verzeichnis D = Datei

    Ausgangsverzeichniss<br>
    |--- D1 <br>
    |--- D2<br>
    |--- D3<br>
    |--- V2<br>
    | |--- D4<br>
    | |--- D5<br>
    | |--- V3<br>
    | | |--- D6<br>
    |--- D7<br>

    Sobald ich auf ein V treffe, gehe ich in meine Funktion wieder Rekursiv rein. Und genau da weiß ich nicht, wie ich das mit der Größe merken machen soll, denn wenn ich aus der Rekurion zurück komme, brauche ich ja die größen der Dateien / Verzeichnisse, die im Verzeichniss.

    Jemand irgendeinen Wink mit dem Zaunpfahl ???

    Schonmal Danke

    To

  • #2
    globale Variable?
    Christian

    Comment


    • #3
      Mit einer globalen Variable würde ich zwar das Ausgangsverzeichnis einfach errechnen können, nur brauche ich auch die größen der anderen Verzeichnisse. Da ist das schon wieder nicht damit getan, oder

      Comment


      • #4
        Tja, mir ist so nicht klar:

        Willst du die Größe aller Verzeichnisse ermitteln und addieren -> globale Variable

        Die Größe aller Verzeichnisse ermitteln und auch wieder dem Namen des Verzeichnisses zuordnen können?
        Christian

        Comment


        • #5
          Es soll mal ungefähr so aussehen

          Ausgangsverzeichniss ( 18 byte )<br>
          |--- D1 ( 2 )<br>
          |--- D2 ( 1 ) <br>
          |--- D3 ( 3 ) <br>
          |--- V2 ( 8 ) <br>
          | |--- D4 ( 2 ) <br>
          | |--- D5 ( 2 ) <br>
          | |--- V3 ( 4 ) <br>
          | | |--- D6 ( 4 ) <br>
          |--- D7 ( 4 ) <br&gt

          Comment


          • #6
            Dann kannst du doch alles in eine globale Variable schreiben.

            Vor dem Ende deiner Rekursion werden die ermittelten Dateigrößen auf diese summiert

            Ich weiß ja nicht mit welchem Compiler du arbeitest aber ggf. hilft

            http://home.snafu.de/christian.marquardt/dlls.3/3_chfilesearch.htm
            Christian

            Comment


            • #7
              Das geht ganz einfach, deine rekursive Funktion liefert die grösse des Verzeichnisses als Rückgabewert zurück, dann kannst du das einfach aufaddieren, egal ob es sich um eine Datei oder um ein Verzeichnis handelt.

              gruss
              Sebastia

              Comment

              Working...
              X