我都是采用二个 TStringList ,一个是尚待查找的文件夹列表,另一个是找到的文件列表
然后采用线程或循环查找。
void __fastcall BrowDir(TStrings * path /* in */,TStrings *file /* out */)
{
TSearchRec sr;
while (path->Count)
{
AnsiString S = path->Strings[0];
path->Delete(0);
if (FindFirst(S+"\\*.*", faAnyFile, sr) == 0)
{
do
{
if (sr.Name!="." && sr.Name!="..") 排除目录“.”和“..”
if(sr.Attr & faDirectory) //判断是否是目录
path->Add(S + "\\" + sr.Name); //调用函数本身,进入子目录
else
file->Add(path + "\\" + sr.Name);
} while (FindNext(sr) == 0);
FindClose(sr);
}
Sleep(7);
}
}