Einzelnen Beitrag anzeigen

Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#2

Re: TShellTreeView mit Ordnergrößen

  Alt 16. Aug 2003, 17:49
Ok Ich bin ein Stück weiter gekommen aber es hakt immer noch
Delphi-Quellcode:
function TForm1.getNodeSize(Node: TTreeNode): Int64;
var TempNode: TTreeNode;
    Path: String;
    OldIndex, i: Integer;
begin
  Result := 0;
  if Node.HasChildren then
  begin
    TempNode := Node.GetFirstChild;
    repeat
      Inc(Result, getNodeSize(TempNode));
      TempNode := Node.GetNextChild(TempNode);
    until TempNode = nil;
  end;
  OldIndex := Node.AbsoluteIndex;
  if OldIndex = 0 then Path := ''
  else Path := Node.Text;
  for i := 0 to Node.Level-2 do
  begin
    Path := TreeView.Items[OldIndex].Parent.Text + '\' + Path;
    OldIndex := TreeView.Items[OldIndex].Parent.AbsoluteIndex;
  end;
  Path := TreeView.Root + Path + '\';
  Inc(Result, DirSize(Path));
  Sizes[Node.AbsoluteIndex] := Result;
  Node.Data := @Sizes[Node.AbsoluteIndex];
end;
Das liefert schon ganz gute Ergebnisse nur muss ich hierzu erst alle Einträge ausklappen (FullExpand) und außerdem werden versteckte Ordner nicht berücksichtigt. Wenn ich die versteckten Dateien im TreeView anzeigen lasse stürzt das Programm bei der Berechnung ab und bleibt außerdem an so Sachen wie fehlenden Netzwerkverknüpfungen hängen. Irgendwelche Ideen woran das liegen könnte bzw was man dagegen tun könnte??
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat