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
{
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