Warum kommt es bei der Funktion:
Delphi-Quellcode:
function VerzGroesse(Verzeichnis:string):longint;
var SR : TSearchRec;
Groesse : longint;
begin
Groesse:=0;
if Verzeichnis[length(Verzeichnis)]<>'\' then
Verzeichnis:=Verzeichnis+'\';
if FindFirst(Verzeichnis+'*.*',$3F,SR)=0 then begin
repeat
if ((SR.Attr and faDirectory)>0) and (SR.Name<>'.') and (SR.Name<>'..') then
Groesse:=Groesse+VerzGroesse(Verzeichnis+SR.Name)
else
Groesse:=Groesse+SR.Size;
if (SR.Name<>'.') and (SR.Name<>'..') then
FileListArray.Add(Verzeichnis+SR.Name);
until FindNext(SR)<>0;
FindClose(SR);
end;
Result:=Groesse;
end;
(stammt von
http://www.delphi-fundgrube.de/faq03.htm#topic0310)
zu "
Access violation" - Fehler
sie wird mit:
self.caption := IntToStr(VerzGroesse('C:\Program Files\'))+' Byte';
aufgerufen. Der Ordner "Program Files" existiert und ist nicht leer.