Hallo,
ich will mittels einer Schleife die Dateigrößen aller Dateien in einem Ordner inklusive Unterordner ermitteln und diese zusammenrechnen.
Das Auslesen der Ordner funktioniert, nur das Ermitteln der Dateigrößen klappt noch nicht.
Bekomme immer die Fehlermeldung, das der Listenindex überschritten wird!
Hier meine Procedure
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48:
| procedure getfilesinserverdir(adir,async_dir: String; aftp: Tidftp; Alist, Alistcl: TStringlist; Achronik: TListbox); var e: Integer; aseclist: TStringlist; begin alist := TStringlist.Create; alistcl := TStringlist.Create; aseclist := TStringlist.Create; aftp.list(alist,'',false); for e:=0 to alist.Count-1 do begin if ((alist[e] <> '.') and (alist[e] <> '..')) then begin if ansipos('.',alist[e])=0 then begin achronik.Items.Add('Ordner entdeckt: '+alist[e]); aftp.ChangeDir(alist[e]); aftp.List(aseclist,'',false);
getfilesinserverdir(adir+alist[e]+'/',async_dir,aftp,aseclist,alistcl,achronik); aftp.ChangeDirUp; end else begin if not (adir = '') then begin achronik.Items.add('ServerlistCL hinzufügen: '+adir+ alist[e]+' '+inttostr(aftp.DirectoryListing.Items[e].size)); filessize:= filessize+aftp.DirectoryListing.Items[e].size; end else begin achronik.Items.add('ServerlistCL hinzufügen: '+alist[e]+' '+inttostr(aftp.DirectoryListing.Items[e].size)); filessize:= filessize+aftp.DirectoryListing.Items[e].size; end; end; end; end; end; |