DirGetSize() Bug? Lösung? Alternative?

  • Ich habe zwar speziell für mein Problem schon eine Alternativlösung gefunden, dennoch würde ich dieses Phänomen gerne verstehen.

    Problem: Je nach Schreibweise des Pfades gibt DirGetSize eine andere Ordnergröße aus. Nachvollzogen beim Pfad einer Netzwerkfreigabe!

    Bsp.:

    DirGetSize("\\SERVER\Freigabe\test") => Gibt bei mir 305 MB zurück

    DirGetSize("Z:\test") (Als zugewiesenes Netzlaufwerk mit LW-Buchstaben) => Gibt bei mir 443 MB zurück

    Zwischenzeitlich hatte ich bei einem Pfad mit @ScriptDir noch einen anderen Wert! Und alle Pfade zeigen auf exakt den selben Netzwerkordner mit selber Größe.

    Ich habe dies natürlich eben außerhalb meines Finalscripts mit einem 3 Zeiler gegengeprüft. An Merkwürdigkeiten im Script kann es also nicht liegen.

    Jemand schon mal so gehabt? Lösungsvorschläge? Oder gar Alternativen zu DirGetSize() ?

  • Kann ich bei uns in der Domäne nicht feststellen. Beide Werte auf das Byte genau gleich groß.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Das ist ja merkwürdig. Dann poste ich hier doch noch einmal das Testskript, vllt. mach ich ja doch was anders?

    und als Ausgabe bekomme ich dann folgendes:

    Demnach gibt es bei Pfad mit LW-Buchstaben und Freigabe-Pfad mit Doppelbackslash Unterschiede bei mir :/

  • Bist du dir 100% sicher das dein Netzwerklaufwerk auf den richtigen Pfad zeigt, also der Pfad in Klammern im Explorer 1:1 deinem $TargetPath2 entspricht?

    Prüf doch sonst mal mit dem Flag $DIR_EXTENDED (1) ob dort bei allen dreien das gleiche für

    $SizeX[0] = Size

    $SizeX[1] = Files count

    $SizeX[2] = Dirs Count

    herauskommt. Wenn deine Aussage stimmt das der Pfad passt, muss hier alles drei bei allen drei Pfaden identisch sein.

  • Danke Moombas,

    das sind gut Ansätze der Ursache auf die Schliche zu kommen.

    Das sind die Ergebnisse der DirGetSize Extended Array's:

    Demnach stimmt die Ordner-Anzahl überein, die Dateien jedoch nicht. Dies wird wohl die Ursache für die Unterschiedliche Größe sein. Heißt es geht wohl eher in die Richtung "Versteckte Dateien" oder sowas... :/

    Die Pfade und DNS-Namen des Netzlaufwerks und des Fileserver stimmen zumindest überein und die angezeigte Ordnerstruktur in Windows ist bei beiden Pfadaufrufen im Explorer auch identisch. Also ja, aus meiner Sicht 100% der selbe Pfad.

    Ich werde bei Zeit nochmal weiter in die Richtung prüfen und auch deine verlinkte Alternative mal testen. Danke, das hat jedenfalls schonmal weiter geholfen. ;)

  • Alternate Data Streams (ADS)?

    Anzahl der Verzeichnisse ist gleich, nur Anzahl Dateien und Summe der Dateigrößen ändert sich.

    Kannst ja mal folgendes Sysinternals Tool drüberlaufen lassen. Es zeigt Dateien mit ADS an.

    Streams - Windows Sysinternals
    Reveal NTFS alternate streams.
    docs.microsoft.com