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

求源程序,提取文件名和路径!该怎么解决

2012-02-23 
求源程序,提取文件名和路径!!!!!!求一个完整的程序,要求从一级文件夹(譬如data)底下依次读若干个二级文件

求源程序,提取文件名和路径!!!!!!
求一个完整的程序,要求从一级文件夹(譬如data)底下依次读若干个二级文件夹(譬如000、001、002、003、004、005、006、007、008、009、010、、、、、、、),并且把二级文件夹里面符合要求的“文件名”(譬如1.dat和2.dat)以及相应的“文件路径”都提取出来存入一个文本文件(000里面的两个.dat文件及其路径为第一行,001里面的两个.dat文件及其路径为第二行。。。。)
不知道自己表述清楚没有,只会用c,可是这个功能c没有,现学别的语言时间来不及了,所以厚脸皮求一个完整的程序,或者发我邮箱(sleepagoodsleep@sina.com),感激感激.

[解决办法]

C/C++ code
void __fastcall TForm1::BrowseDirectory(AnsiString Dir, TTreeNode* Node){TSearchRec sr;TTreeNode* SubNode=Node;if(FindFirst(Dir "*.*",faDirectory,sr)==0)while(1){ if(sr.Attr==faDirectory&&sr.Name!="."&&sr.Name!=".."){SubNode=DirTree->Items->AddChild(Node,sr.Name);BrowseDirectory(Dir sr.Name "\\",SubNode);}if(FindNext(sr)!=0) break;}FindClose(sr);return;//TODO: Add your source code here}
[解决办法]
C++builder的文件读写操作总结 

http://ourdev.cn/bbs/bbs_content.jsp?bbs_sn=962961&bbs_page_no=1&search_mode=3&search_text=hyz_avr&bbs_id=9999
[解决办法]
今天稍微整理一下代码,写了个大概符合楼主要求的程序段
C/C++ code
TStringList *m_pList;//存储路径和编号DWORD  m_nIndex;//编号//pchFilePath:文件路径,最后不带"\"void __fastcall TCopyFileThread::Find(char *pchFilePath,char *pchFileType){    TSearchRec Search;    AnsiString strTemp;    AnsiString strDir;    char chFile[512];    memset(chFile,0,512);    lstrcpy(chFile,pchFilePath);    lstrcat(chFile,"\\");    lstrcat(chFile,pchFileType);    FindFirst(chFile,faAnyFile,Search);    while(FindNext(Search)==0)    {        strTemp.printf("%s\\%s",pchFilePath,Search.Name);        if(Search.Name=="."||Search.Name=="..")            continue;        if(DirectoryExists(strTemp))        {            Find(strTemp.c_str(),pchFileType); //递归遍历        }        else        {            AnsiString strExt,strWRLog;            strExt=ExtractFileExt(strTemp);//获取文件后缀            strExt=strExt.LowerCase(); //小写            if(!strExt.AnsiCompare(".dat"))            {                                //编号日志                strWRLog.printf("(序号%d)%s//%s",m_nIndex,strDir,Search.Name);                m_pList->Add(strWRLog);//写入日志                m_nIndex++;            }        }    }    FindClose(Search);} 

热点排行