PDA

Click to See Complete Forum and Search --> : using recursion with filefile api function


MPrestonf12
May 11th, 2001, 05:34 PM
int findfiles(char *p)
{
WIN32_FIND_DATA Find;
HANDLE hfind;
BOOL hfind2;
unsigned int i=0;
char *dirname[i];


hfind = FindFirstFile(p, &Find);
//MessageBox (NULL, Find.cFileName, "first file", 0);
if(hfind == INVALID_HANDLE_VALUE){
MessageBox(NULL, "Error opening file", "FindFiles", MB_OK|MB_ICONERROR);

} else

SendMessage(listbx, LB_ADDSTRING, 0, (LPARAM) Find.cFileName);

do{
hfind2 = FindNextFile(hfind, &Find);
if(GetFileAttributes(Find.cFileName) & FILE_ATTRIBUTE_DIRECTORY)
//MessageBox (NULL, GetFileAttributes(Find.cFileName) , "hey", 0);
dirname[i] = new char[strlen(Find.cFileName)] ;
dirname[i] = Find.cFileName;
MessageBox(NULL, dirname[i], "This is the dir name",0);



SendMessage(listbx,LB_ADDSTRING,0,(LPARAM) Find.cFileName); //Sends to listbox.

}while(hfind2!=0);


FindClose(hfind);

for(i=i; i>0;i--) { //nothing happens here although no compile errors.
if(i<0) exit(1);
findfiles(dirname[i]);
}


for(i=i;i>0;i--)
delete[] dirname[i];
return 0;
}



The problems here are when I get the attributes for some reason even though I specify to only add -directorys- to the array it adds every file becasue its looking at them all as directorys. What I want to happen is that it will take only directorys to look through, stores them in a array. Then call the function with those paths. Any help is appreciated. Thanks