Einzelnen Beitrag anzeigen

Douglas Quintaine
(Gast)

n/a Beiträge
 
#1

Datei-Suche wirft Exception auf

  Alt 1. Mai 2009, 13:33
Ich muss nach Dateien suchen, brauche also deren Position. Der Code aus der Codelib (http://www.delphipraxis.net/internal...ect.php?t=2464) wirft leider stets die folgende Fehlermeldung auf:
Zitat:
Erste Gelegenheit für Exception bei $7C812A5B. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 00455A8C in Modul 'Project1.exe'. Lesen von Adresse 7A83668E'. Prozess Project1.exe (3064)
Exakt dieselbe Meldung kommt beim Code von SirT. Was mache ich falsch?

Danke


Delphi-Quellcode:
procedure FindAllFiles(var FileList: TStrings; RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True);
var
  SR: TSearchRec;
begin
  RootFolder := IncludeTrailingPathDelimiter(RootFolder);

  if Recurse then
    if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
    try
      repeat
        if SR.Attr and faDirectory = faDirectory then
            // --> ein Verzeichnis wurde gefunden
            // der Verzeichnisname steht in SR.Name
            // der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist
            // RootFolder + SR.Name
          if (SR.Name <> '.') and (SR.Name <> '..') then
            FindAllFiles(FileList, RootFolder + SR.Name, Mask, Recurse);
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then
  try
    repeat
      if SR.Attr and faDirectory <> faDirectory then
      begin
          // --> eine Datei wurde gefunden
          // der Dateiname steht in SR.Name
          // der vollständige Dateiname (inkl. Pfadangabe) ist
          // RootFolder + SR.Name
        FileList.Add(RootFolder + SR.Name); //hier tritt die Exception auf
      end;
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  test: TStrings;
begin
  FindAllFiles(test, 'C:', 'dd.txt', true);
  Memo1.Lines := test;
end;
  Mit Zitat antworten Zitat