Inhaltsplugin: DirSize bei großen Verzeichnissen
Moderators: Hacker, Stefan2, white
Inhaltsplugin: DirSize bei großen Verzeichnissen
ich habe das sehr nützliche Inhalts-Plugin "DirSizeCalc" installiert, welches u.A. die Größe von Ordnern anzeigt.
Ein Problem habe ich aber damit: Wenn man z.B. das Root-Verzeichnis einer Festplatte anzeigt dauert die Größenberechnung ewig, TotalCommander reagiert in dieser Zeit nicht. Meißtens passiert das wenn ich aus irgendeinem Unterverzeichnis zum Root wechsel und vergesse vorher die Ansicht Umzuschalten. Ideal wäre hier eine Möglichkeit das ganze abzubrechen bzw. eine andere Ansicht zu wählen ohne vorher eine halbe Ewigkeit zu warten bis die Größenberechnung abgeschlossen ist und TotalCommander wieder Reagiert.
Ein Problem habe ich aber damit: Wenn man z.B. das Root-Verzeichnis einer Festplatte anzeigt dauert die Größenberechnung ewig, TotalCommander reagiert in dieser Zeit nicht. Meißtens passiert das wenn ich aus irgendeinem Unterverzeichnis zum Root wechsel und vergesse vorher die Ansicht Umzuschalten. Ideal wäre hier eine Möglichkeit das ganze abzubrechen bzw. eine andere Ansicht zu wählen ohne vorher eine halbe Ewigkeit zu warten bis die Größenberechnung abgeschlossen ist und TotalCommander wieder Reagiert.
- StickyNomad
- Power Member
- Posts: 1933
- Joined: 2004-01-10, 00:15 UTC
- Location: Germany
2karsten26
Das ist richtig. TC sammelt in diesem Fall erst alle Daten vom Inhaltsplugin und sortiert dann. Es ist dieses Warten, was dazu führt, dass das Programm nicht mehr reagiert. Ich habe diese Problematik während der Entwicklung der Inhaltsplugin-Schnittstelle mit Ghisler diskutiert, hatte aber auch keinen wirklich guten Vorschlag, wie man das besser machen könnte. Vielleicht hast du ja eine Idee?Das ganze passiert nur dann wenn man nach der Größe sortiert hat.
- ghisler(Author)
- Site Admin
- Posts: 50475
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Mich würde auch interessieren, wie man das aus Anwendersicht lösen könnte. Total Commander kann ja erst dann nach Datum sortieren, wenn er dieses für alle Einträge ermittelt hat...
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Vorschläge:
Ausreichend wäre eigentlich schon eine Möglichkeit den Sortiervorgang abzubrechen (eine andere Sortierung zu wählen) bevor die Größenberechnung abgeschlossen ist. (entweder durch direktes anwählen, oder z.b. "ESC"--> Sortierung nach Name)
Ansonsten:
nicht ewig warten, sondern z.B. alle 2s Sortierung mit aktuell vorhandenen Daten aktualisieren. (keine Daten = 0)
Ausreichend wäre eigentlich schon eine Möglichkeit den Sortiervorgang abzubrechen (eine andere Sortierung zu wählen) bevor die Größenberechnung abgeschlossen ist. (entweder durch direktes anwählen, oder z.b. "ESC"--> Sortierung nach Name)
Ansonsten:
nicht ewig warten, sondern z.B. alle 2s Sortierung mit aktuell vorhandenen Daten aktualisieren. (keine Daten = 0)
@ghisler:
2. hat der TC ja auch auch sonst kein Problem damit, die Listbox zu refreshen, wenn sich irgendwas geändert hat. Wenn man von der Standardanzeige auf DirSizeCalc umschaltet, kann man prima beobachten, wie die Verzeichnisgrößen nach und nach aufsummiert werden.
Sobald also DirSizeCalc einen Wert für ein Verzeichnis zurückliefert, gibt es einen Refresh und die Anzeige wird angepaßt. Das ganze steuerbar über einen benutzerdefinierten INI-Eintrag WatchDirsRefreshInterval mit Angabe in Sekunden als Ergänzung zum bereits existierenden WatchDirs-Feature.
Icfu
1. geht's um die Größe, nicht ums Datum.Mich würde auch interessieren, wie man das aus Anwendersicht lösen könnte. Total Commander kann ja erst dann nach Datum sortieren, wenn er dieses für alle Einträge ermittelt hat...
2. hat der TC ja auch auch sonst kein Problem damit, die Listbox zu refreshen, wenn sich irgendwas geändert hat. Wenn man von der Standardanzeige auf DirSizeCalc umschaltet, kann man prima beobachten, wie die Verzeichnisgrößen nach und nach aufsummiert werden.
Sobald also DirSizeCalc einen Wert für ein Verzeichnis zurückliefert, gibt es einen Refresh und die Anzeige wird angepaßt. Das ganze steuerbar über einen benutzerdefinierten INI-Eintrag WatchDirsRefreshInterval mit Angabe in Sekunden als Ergänzung zum bereits existierenden WatchDirs-Feature.
Icfu
This account is for sale
2icfu
Ich bin mir nicht sicher, ob dass die beste Lösung wäre. Das wäre - wenn ich dich richtig verstanden habe - ein Art visuelles Sortieren. Ich weiß nicht, ob du eine Vorstellung davon hast wieviele Anzeigeaktualisierungen bei einem Verzeichnis mit 100 Unterverzeichnissen nötig wären. Korrigier mich bitte, wenn ich deinen Vorschlag missverstanden habe.
Selbst wenn man die Anzeige nur einmal aktualisiert - wenn alle Werte vorliegen - könnte es für den Anwender verwirrend sein, wenn plötzlich die Anzeige sortiert wird - je nachdem was man gerade macht. Auf der anderen Seite könnte man dieses Argument natürlich auch bei der internen Verzeichnisgrößenberechnung anbringen. Ich denke das ist der beste Kompromiss.
Was meiner Meinung nach auf jeden Fall geändert werden müsste ist das Verhalten bei "bei Bedarf" Feldern. Diese sollte auch bei Sortierung nach dieser Spalte erst dann berechnet werden, wenn der Benutzer es explizit angefordert hat.
Ich bin mir nicht sicher, ob dass die beste Lösung wäre. Das wäre - wenn ich dich richtig verstanden habe - ein Art visuelles Sortieren. Ich weiß nicht, ob du eine Vorstellung davon hast wieviele Anzeigeaktualisierungen bei einem Verzeichnis mit 100 Unterverzeichnissen nötig wären. Korrigier mich bitte, wenn ich deinen Vorschlag missverstanden habe.
Selbst wenn man die Anzeige nur einmal aktualisiert - wenn alle Werte vorliegen - könnte es für den Anwender verwirrend sein, wenn plötzlich die Anzeige sortiert wird - je nachdem was man gerade macht. Auf der anderen Seite könnte man dieses Argument natürlich auch bei der internen Verzeichnisgrößenberechnung anbringen. Ich denke das ist der beste Kompromiss.
Was meiner Meinung nach auf jeden Fall geändert werden müsste ist das Verhalten bei "bei Bedarf" Feldern. Diese sollte auch bei Sortierung nach dieser Spalte erst dann berechnet werden, wenn der Benutzer es explizit angefordert hat.
Jep.ein Art visuelles Sortieren
Directory Opus berechnet die Verzeichnisgrößen in Echtzeit, mich verwirrt das nicht. Im Gegenteil mag ich es, daß ich weiterarbeiten kann und da wirklich "im Hintergrund" gerechnet wird, ohne mich mit Wartezeit zu belästigen, was ich vom TC leider nicht behaupten kann.Selbst wenn man die Anzeige nur einmal aktualisiert - wenn alle Werte vorliegen - könnte es für den Anwender verwirrend sein, wenn plötzlich die Anzeige sortiert wird- je nachdem was man gerade macht.
Jep, dann könnte ich DirSizeCalc auch ständig aktiviert lassen, jedenfall abgesehen von Archiven...Was meiner Meinung nach auf jeden Fall geändert werden müsste ist das Verhalten bei "bei Bedarf" Feldern. Diese sollte auch bei Sortierung nach dieser Spalte erst dann berechnet werden, wenn der Benutzer es angefordert hat.
Icfu
This account is for sale
Es geht nicht um die Berechnung sondern um die ständige Neusortierung. Weshalb wäre denn einmal Sortieren zu wenig?Directory Opus berechnet die Verzeichnisgrößen in Echtzeit
Probier doch mal bitte die neueste Version.Jep, dann könnte ich DirSizeCalc auch ständig aktiviert lassen, jedenfall abgesehen von Archiven...
Es geht um beides:Es geht nicht um die Berechnung sondern um die ständige Neusortierung.
1. sieht man, wie die Größen aufsummiert werden und zwar sobald man ein Verzeichnis betritt.
2. wird erst am Schluß sortiert. In der Tat reicht das aus, aber wenn es möglich wäre, auch Zwischenergebnisse zu bekommen, fänd' ich das angenehm.
Ich habe DirSizeCalc 2.00 Beta 2 installiert. Wenn es 'ne neuere gibt, werde ich das tun.Probier doch mal bitte die neueste Version.
Icfu
This account is for sale
2icfu
Naja das ist doch aber logisch, oder?sieht man, wie die Größen aufsummiert werden und zwar sobald man ein Verzeichnis betritt.
Naja da sind wir wohl anderer Meinung. Ich finde Zwischenergebnisse bei der Sortierung sind schwer als solche zu erkennen. Wenn z. B. alle sichtbaren Verzeichnisse berechnet und somit auch sortiert wurden, andere aber nicht, dann sieht man das nicht.wird erst am Schluß sortiert. In der Tat reicht das aus, aber wenn es möglich wäre, auch Zwischenergebnisse zu bekommen, fänd' ich das angenehm.
Es gibt da noch einige Probleme, aber ich hoffe Ghisler wird diese noch beseitigen. Die grundsätzliche Funktionalität ist aber vorhanden.Ich habe DirSizeCalc 2.00 Beta 2 installiert. Wenn es 'ne neuere gibt, werde ich das tun.
Da könnte man ja ein visuelles Warnsignal absetzen, solange die Gesamtoperation noch nicht abgeschlossen ist. Über die Form können wir diskutieren, wenn es ansteht, aber mir fälllt da so einiges ein, von aufdringlich bis dezent. Hat für mich aber keine Priorität, wäre nur ein Nice-To-Have. Hauptsache, die Verzeichnisse kann ich sofort betreten und irgendwann wird sortiert.Ich finde Zwischenergebnisse bei der Sortierung sind schwer als solche zu erkennen. Wenn z. B. alle sichtbaren Verzeichnisse berechnet und somit auch sortiert wurden, andere aber nicht, dann sieht man das nicht.
Ja, das hast Du ja immer wieder gesagt: Wenn Du nur so könntest, wie Du wolltest.Es gibt da noch einige Probleme, aber ich hoffe Ghisler wird diese noch beseitigen. Die grundsätzliche Funktionalität ist aber vorhanden.

Icfu
This account is for sale
2icfu

Ich meinte das so, dass ich die Werte, die der TC übermittelt eben anzeige. Soll heißen: Ich muss im Grunde nichts mehr zusätzlich einbauen. Wenn es irgendwann vollständig funktioniert, dann wird es wohl "von alleine" gehenJa, das hast Du ja immer wieder gesagt: Wenn Du nur so könntest, wie Du wolltest.

Ich möchte das nochmal aufgreifen: Mittlerweile (?) kommt zwar ein Dialog mit dem man die Operation theoretisch abbrechen kann (-> ESC zum Abbrechen + Abbrechen-Schaltfläche) Leider ist es mir in der Regel nicht möglch die entsprechende Option auszuwählen, weil TotalCommander nicht reagiert.
Gerade war ich wieder versehentlich auf C:\ bei aktivierter Sortierung nach Verzeichnisgröße. TotalCommander war daraufhin nicht mehr nutzbar. Ich habe es weder geschafft den Vorgang zu unterbrechen, nocht eine andere Sortierung auszuwählen.
Wenn ich gewartet habe bis der Vorgang abgeschlossen war hat ein Klick in TC sofort eine Aktualisierung, und damit erneuter Blokade geführt.
Einzige Lösung: TC beenden (-> Task beenden) und in der INI manuell eine anderes Verzeichnis als Startverzeichnis wählen.
Ich würde mir hier entweder eine funktionierendes "Abbrechen" wünschen, oder eine Sortierung im Hintergrund:
Noch nicht berechnete Verzeichnise kommen ans Ende der Liste (= Größe 0).
Da die Verzeichnisgröße nicht langsam "aufsummiert" wird, sehe ich auch nicht das Problem, dass man nicht erkennt ob die Sortierung nun fertig ist oder nicht. In der Spalte "Größe" wird (Ist-Zustand) bei noch nicht abgeschlossener Größenberechnung "Dir" angezeigt (noch nicht berechnet/sortiert) oder die korrekte Verzeichnisgröße. In dem Moment in dem die Größe eines Verzeichnisses ermittelt wurde kann dieses dann entsprechend einsortiert werden.
Gerade war ich wieder versehentlich auf C:\ bei aktivierter Sortierung nach Verzeichnisgröße. TotalCommander war daraufhin nicht mehr nutzbar. Ich habe es weder geschafft den Vorgang zu unterbrechen, nocht eine andere Sortierung auszuwählen.
Wenn ich gewartet habe bis der Vorgang abgeschlossen war hat ein Klick in TC sofort eine Aktualisierung, und damit erneuter Blokade geführt.
Einzige Lösung: TC beenden (-> Task beenden) und in der INI manuell eine anderes Verzeichnis als Startverzeichnis wählen.
Ich würde mir hier entweder eine funktionierendes "Abbrechen" wünschen, oder eine Sortierung im Hintergrund:
Noch nicht berechnete Verzeichnise kommen ans Ende der Liste (= Größe 0).
Da die Verzeichnisgröße nicht langsam "aufsummiert" wird, sehe ich auch nicht das Problem, dass man nicht erkennt ob die Sortierung nun fertig ist oder nicht. In der Spalte "Größe" wird (Ist-Zustand) bei noch nicht abgeschlossener Größenberechnung "Dir" angezeigt (noch nicht berechnet/sortiert) oder die korrekte Verzeichnisgröße. In dem Moment in dem die Größe eines Verzeichnisses ermittelt wurde kann dieses dann entsprechend einsortiert werden.