Einzelnen Beitrag anzeigen

AnyKey

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

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 12:58
Habe mir die Hilfe durchgelesen, war auch so schlau mal in die Delphi Hilfe zu gucken. Naja ich kenn mich mit den sachen halt nicht aus, habe ich noch nie was mit gemacht. Tut mir leid wenn ich es euch unnötig schwer mache, bin froh das ihr mir helft!

Ok, das mit dem Datum und der Größe habe ich jetzt auch so, nur wie kann ich das jetzt in meine Stringlist schreiben, die ist leider immer noch leer und ich weiß nicht warum. Das Debugen hab ich schon probiert, das hilft mir nicht weiter, scheinbar schreibt er garnichts in List...

Wäre super wenn mir da noch jemand helfen könnte, das ist dann denke ich der letzte schritt.


Das ist di Funktion:
Delphi-Quellcode:
class procedure TDataWork.GetAllFilesInDirectorys(Directory: string; List: TStrings; ClearList: Boolean);
procedure ScanDir(const Directory: string);
var Mask : string;
var SR : TSearchRec;
begin
  Mask := '*.*';
  if FindFirst(Directory+Mask,faAnyFile and not faDirectory, SR) = 0 then
  begin
    try
      repeat
        List.Add(Directory+SR.Name+'#'+IntToStr(SR.FindData.nFileSizeHigh)+'*'
                 +IntToStr(SR.FindData.ftLastAccessTime.dwLowDateTime));
      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);
  finally
    List.EndUpdate;
  end;
end;
So versuche ich sie Aufzurufen: (wie gesagt mit einer ListBox funktionierts)
Delphi-Quellcode:
var List : TStringList;
List := TStringList.Create;
TDataWork.GetAllFilesInDirectorys(Pfad,List,true);
Wie gesagt die Liste bleibt leer, egal was ich auch schon probiert hab.

Gruß
AnyKey
  Mit Zitat antworten Zitat