请问,我剃归的时候在那里出错了?在线等!!!分数虽少,小弟心意重。(100分)

  • 主题发起人 beckjiang
  • 开始时间
B

beckjiang

Unregistered / Unconfirmed
GUEST, unregistred user!
void __fastcall TForm1::Findpath(char * floder)
{
TSearchRec sr;
int index=0;
_WIN32_FIND_DATAA sr1;
char* demp="
";
char* demppathname;
strcpy(demp,floder);
strcat(demp,"*.*");
Char * dirname[1024];
INT i=0;
void* h;
h=FindFirstFileA(demp,&sr1);
while(h)
{
if(sr1.dwFileAttributes==32)
Memo1->Lines->Add(sr1.cFileName);
if(FindNextFileA(h,&sr1)==0)
break;
}
h=FindFirstFileA(demp,&sr1);
while(h)
{
if(sr1.dwFileAttributes==16||sr1.dwFileAttributes==18)
{
if (strcmp(sr1.cFileName,".")!=0&&strcmp(sr1.cFileName,"..")!=0)
{
dirname[++i]="
";
strcpy(dirname,floder);
strcat(dirname,sr1.cFileName);
strcat(dirname,"//");
Memo2->Lines->Add(dirname);}
}
if(FindNextFileA(h,&sr1)==0)
break;
}
int j=1;
while(j<=i)
Findpath(*(dirname+j++));
}
为什么只能找到目录下的第一个目录下级目录的第一个下级目录。比如我现在存在这样子一个文件夹。
C:/test 第一级目录有:test1,test2两个目录,在test1目录下有testa.testb.在test2目录下有teste,testd.用这个函数遍历的时候只能找出:C:/test1.C:/test2.C:/test1/testa.这三个目录。dirname在递归的时候值一直都在改变,是不是因为我使用的是指针。是不是不应该使用指针来递归。小弟初学C++ builder有很多地方不懂。请大家帮帮忙。分数虽少,小弟心意重。请大家帮帮忙,小弟感激不尽!谢谢!在线等。
 
OK.问题搞定。问题出在我的函数使用了指针。没有回复,还是谢谢大家。
 
把分给我吧。呵呵。下次再帮你。
 
给他,捎带给我点.你可以问点别的嘛.
 
但是我有问题都解决了.在解决之前没有一个人回贴.我还给分给你们,好像有点不大对哦,在CSDN里,有一个朋友回复了一下,我就把分全给他了.[:D]SORRY
 
还不是来迟了一点嘛,我可是很勤快的,我的问题也不是每个都能得到回答,不过我只是不愿意有没有回答的问题存在.不过这也是你的自由,呵呵.
 
[:D]恭喜搞定
 
顶部