hallo!
ich habe eine funktion erstellt die ordner finden soll (das tut sie auch).
jetz habe ich vor wenn diese funktion einen ordner findet, das sie sich selbst aufruft und den pfad des soeben gefunden ordners als neuen suchpfad für weiter ordner benutzt. quasi sollen alle unterordner gefunden werden.
hier ist die funktion:
int FindDirs( char path[])
{
char spath[500];
strcpy(spath,path);
strcat(spath,"\\");
strcat(path,"\\*.*");
int ret=0;
HANDLE hFound;
WIN32_FIND_DATA ffdFoundData;
hFound = FindFirstFile(path,(LPWIN32_FIND_DATA)&ffdFoundData);
if( (HANDLE)(-1) == hFound)
{
if( GetLastError() != ERROR_FILE_NOT_FOUND)
{
printf("ERROR 1@ %s\n",path);
return ret;
}
}
if( ffdFoundData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )
{
strcat(spath,ffdFoundData.cFileName);
FindDirs(spath);
}
while( FindNextFile( hFound,(LPWIN32_FIND_DATA)&ffdFoundData) != NULL )
{
if( ffdFoundData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )
{
strcat(spath,ffdFoundData.cFileName);
FindDirs(spath);
}
}
return ret;
}
allerdings funktioniert das ganze nicht so wirklich, ihr könnt ja einfach mal die funktion benutzen.. der erste ordner wird korrekt gefunden, aber danach geht alles schief..
wo ist das problem? ich bin das ganze schon mehrmals im kopf durchgegangen und habe mit einigen printf an diversesn stellen nachgeguggt, welche werte die variablen haben, aber konnte keinen fehler finden.
danke im vorraus
(ps: das ganze ist für ein programm welches ähnlich sein soll wie das dir programm von windows)
ich habe eine funktion erstellt die ordner finden soll (das tut sie auch).
jetz habe ich vor wenn diese funktion einen ordner findet, das sie sich selbst aufruft und den pfad des soeben gefunden ordners als neuen suchpfad für weiter ordner benutzt. quasi sollen alle unterordner gefunden werden.
hier ist die funktion:
int FindDirs( char path[])
{
char spath[500];
strcpy(spath,path);
strcat(spath,"\\");
strcat(path,"\\*.*");
int ret=0;
HANDLE hFound;
WIN32_FIND_DATA ffdFoundData;
hFound = FindFirstFile(path,(LPWIN32_FIND_DATA)&ffdFoundData);
if( (HANDLE)(-1) == hFound)
{
if( GetLastError() != ERROR_FILE_NOT_FOUND)
{
printf("ERROR 1@ %s\n",path);
return ret;
}
}
if( ffdFoundData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )
{
strcat(spath,ffdFoundData.cFileName);
FindDirs(spath);
}
while( FindNextFile( hFound,(LPWIN32_FIND_DATA)&ffdFoundData) != NULL )
{
if( ffdFoundData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )
{
strcat(spath,ffdFoundData.cFileName);
FindDirs(spath);
}
}
return ret;
}
allerdings funktioniert das ganze nicht so wirklich, ihr könnt ja einfach mal die funktion benutzen.. der erste ordner wird korrekt gefunden, aber danach geht alles schief..
wo ist das problem? ich bin das ganze schon mehrmals im kopf durchgegangen und habe mit einigen printf an diversesn stellen nachgeguggt, welche werte die variablen haben, aber konnte keinen fehler finden.
danke im vorraus
(ps: das ganze ist für ein programm welches ähnlich sein soll wie das dir programm von windows)