- Im folgenden Beispiel wird der Inhalt eines Verzeichnisses (c:) in einer ListBox dargestellt.
- Die Hilfsfunktionen ConvertTimeToStr(), ConvertDateToStr() und ConvertAttribToStr() extrahieren Fileinformationen aus dem Struct dirinfo und generieren daraus fertige AnsiStrings.
- u.U. sollte man noch den Header dir.h einbinden
void __fastcall TForm1::Button1Click(TObject *Sender)
{
struct ffblk dirinfo;
// zum 1. Directoryeintrag in c: springen und alle Filetypen suchen
int result = findfirst("c:\\*.*", &dirinfo, FA_NORMAL | FA_RDONLY | FA_HIDDEN | FA_SYSTEM | FA_DIREC | FA_ARCH);
// solange Einträge da sind, in der Listbox ausgeben
while (result == 0)
{
ListBox1->Items->Add(ConvertTimeToStr(dirinfo.ff_ftime)) +", "+ ConvertDateToStr(dirinfo.ff_fdate)) +", "+ ConvertAttribToStr(dirinfo.ff_attrib)));
result = findnext(&dirinfo);
}
}
AnsiString __fastcall TForm1::ConvertTimeToStr(int ffTime)
{
return IntToStr(ffTime & 0x1F) + ":" + IntToStr(ffTime & 0x3F) + ":" + IntToStr(2 * (ffTime & 0x1F));
}
AnsiString __fastcall TForm1::ConvertDateToStr(int ffDate)
{
return IntToStr(ffDate & 0x1F) + ":" + IntToStr(ffDate & 0xF) + ":" + IntToStr((ffDate & 0x7F) + 1980);
}
AnsiString __fastcall TForm1::ConvertAttribToStr(int ffAttrib)
{
AnsiString sResult = "";
if ((ffAttrib & FA_DIREC) != 0 ) sResult = sResult + "D";
if ((ffAttrib & FA_RDONLY) != 0 ) sResult = sResult + "R";
if ((ffAttrib & FA_HIDDEN) != 0 ) sResult = sResult + "H";
if ((ffAttrib & FA_SYSTEM) != 0 ) sResult = sResult + "S";
if ((ffAttrib & FA_ARCH) != 0 ) sResult = sResult + "A";
if ((ffAttrib & FA_NORMAL) != 0 ) sResult = sResult + "N";
return sResult;
}