关于目录中文件的操作解决方法

关于目录中文件的操作
我用C++ Builder想实现以下功能:打开一个文件目录(例如:E:\data),将目录中的文件名、文件逐个加到数据库中,请问如何实现,遍历语句如何写?谢谢!
------解决方案--------------------
参考下面代码


//遍历目录内所有子目录及子目录中的文件,Flag=0仅列举,Flag=1仅删除文件,Flag=2删除所有文件及所有子目录
/*
     //Daniel QQ9562512
    //调用示例
    sDir = ExtractFilePath(sFileName);
    TStrings *StringList = new TStringList();
    ListAllFile(sDir,2,StringList) ;
*/
void   __fastcall   ListAllFile(String Dir,int Flag,TStrings *List)
{
    TSearchRec   sr;
    int   iAttributes   =   0;
    AnsiString fileName,dirStr;
    iAttributes   
------解决方案--------------------
=   faAnyFile;
    if   (   FindFirst(   Dir+"*.*",   iAttributes,   sr)   ==   0   )
    {
        try
        {
            do
            {
                if   (   sr.Name == "." 
------解决方案--------------------
 sr.Name == ".." )
                    continue;
                if   (   sr.Attr == faDirectory )
                {
                    List->Add(Dir+sr.Name+"\\");//记录子目录名

                    ListAllFile( Dir+sr.Name+"\\",Flag,List );//递归查找并处理子目录中所有文件
                    //此处可以删除文件已经被删除过的空的子目录
                    if(Flag==2)
                    {
                        RemoveDir(Dir+sr.Name+"\\");
                    }
                }
                else
                {
                    List->Add(Dir + sr.Name);//记录文件名
                    Application->ProcessMessages();
                    //DeleteFile   (   Dir   +   "\\"   +   sr.Name   );//删除文件
                    if(Flag==1 
------解决方案--------------------
 Flag==2)
                    {
                        DeleteFile(Dir + sr.Name);
                    }
                }
                Application->ProcessMessages();
            }while   (   FindNext   (   sr   )   ==   0   );
            //删除文件夹
            if(Flag==2)
            {
                RemoveDir(Dir);
            }
            Application->ProcessMessages();

            FindClose(sr);