首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于目录中文件的操作,该怎么解决

2012-05-22 
关于目录中文件的操作我用C++ Builder想实现以下功能:打开一个文件目录(例如:E:\data),将目录中的文件名、

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

[解决办法]
参考下面代码

C/C++ code
//遍历目录内所有子目录及子目录中的文件,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);        }        catch(Exception   &e)           {            FindClose(sr);        }       }}
[解决办法]
帮助中搜索 FindFirst 或 FindFirstFile , 有现成的 DEMO

热点排行