naja, ich geh davon aus das der Code stimmt, weil´s ja eigentlich keine Fehlermeldung gibt, und man dabei nich so viel falsch machen kann, denk ich...
... ok, ich weiß, nicht denken, nachdenken!
Also, 1. die Procedure um den Verzeichnis-Inhalt auszulesen:
Delphi-Quellcode:
procedure TForm1.FindAllFiles(RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True);
var
SR: TSearchRec;
begin
if AnsiLastChar(RootFolder)^ <> '\' then
RootFolder := RootFolder + '\';
// * * * * *
// nur bis einschließlich Delphi 4 benötigt
if Mask = '' then
Mask := '*.*';
// * * * * *
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(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
// folgende Zeile schreibt den vollständigen Namen in eine Memo Feld des
// Formulars Form1
Form1.ListBox1.Items.Add(SR.Name);
end;
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
end;
Das führt die Prozedure aus (auf ButtonClick):
FindAllFiles('C:\test\','*.txt',false);
Und hiermit übergebe ich auf ButtonClick den ersten (respektive beliebigen) Wert:
Label1.Caption := ListBox1.Items.ValueFromIndex[0];
mfG