Hallo,
ich habe folgendes Problem, ich will einen Ordner rekursiv durchsuchen und für alle gefundenen Dateien den Letzten Zugriff auslesen. Die Funktion sieht folgendermaßen aus:
Delphi-Quellcode:
class procedure TDataWork.GetAllFilesInDirectorys(Directory: string; List: TStrings; ClearList: Boolean);
var LastAccess : string;
var i : Integer;
procedure ScanDir(const Directory: string);
var Mask : string;
var SR : TSearchRec;
begin
// ToDo:
Mask := '*.*';
if FindFirst(Directory+Mask,faAnyFile and not faDirectory, SR) = 0 then
begin
try
repeat
List.Add(Directory+SR.Name);
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
end;
if FindFirst(Directory+Mask,faAnyFile,SR) = 0 then
begin
try
repeat
if ((SR.Attr and faDirectory) = faDirectory) and (SR.Name <> '.') and (SR.Name <> '..') then
begin
ScanDir(Directory+SR.Name+'\');
end;
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
end;
end;
begin
List.BeginUpdate;
try
if ClearList then
begin
List.Clear;
end;
if Directory = '' then
begin
Exit;
end;
if Directory[Length(Directory)] <> '\' then
begin
Directory := Directory+'\';
end;
Directory := Directory+'\';
ScanDir(Directory);
// muss das Auslesen der AccessTime hier gemacht werden? überprüfen!!!!
=> for i := 0 to List.Count - 1 do
=> begin
=> LastAccess := GetLastAccessTime(List.Strings[i]);
=> end;
finally
List.EndUpdate;
end;
end;
Die Frage ist jetzt wo muss ich die mit => gekennzeichnete schleife hinpacken, damit ich die Liste durchgehen kann und ich den Letzten Dateizugriff für alle Listeneinträge auslesen kann.
Hoffe es kann jemand helfen!
Gruß
AnyKey