Einzelnen Beitrag anzeigen

AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#1

Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 15. Apr 2010, 09:16
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
  Mit Zitat antworten Zitat