求源程序,提取文件名和路径!!!!!!
求一个完整的程序,要求从一级文件夹(譬如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),感激感激.
[解决办法]
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
[解决办法]
今天稍微整理一下代码,写了个大概符合楼主要求的程序段
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);}