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;