Rekursive Dateisuche
-
Hallo,
hab ein Problem mit meiner Datei-Suchfunktion.
ich kann zb nicht nach ".txt" oder so suchen und irgendwas läuft nicht richtig auch wenn ich viele richtige/treffende Ergebnisse bekomme.
Viell könnt ihr mir ja helfen, hier mal der (noch nicht fertige) Code:
#include <windows.h> #include <stdio.h> int listenup_files(char path[]); int index=0; char string[200]; char files[1000][300]; int main() { int i=0; char directory[6]="C:"; char dp[2]=":"; char doubleslash[3]="\\"; //GetWindowsDirectory(directory,sizeof(directory+1)); //lstrcat(directory,dp); //lstrcat(directory,doubleslash); printf("Nach was wollen sie suchen\n"); scanf("%s",&string); listenup_files(directory); printf("\n"); printf("end\n"); return 0; } int listenup_files(char path[]) { char new_string[200]; char path_2[200]; HANDLE fHandle; WIN32_FIND_DATA wfd; strcpy(path_2,path); lstrcat(path_2,"\\*"); fHandle=FindFirstFile(path_2,&wfd); do { if (!( (wfd.cFileName[0]=='.') && ( (wfd.cFileName[1]=='.' && wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) )) { if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { strcpy(new_string,path); lstrcat(new_string,"\\"); lstrcat(new_string,wfd.cFileName); if(strstr(wfd.cFileName,string)!=NULL) { printf("%s\n",wfd.cFileName); strcpy(files[index],new_string); index++; } listenup_files(new_string); } else { if(strstr(new_string,string)!=NULL) { printf("%s\n",wfd.cFileName); strcpy(files[index],new_string); index++; } } } } while (FindNextFile(fHandle,&wfd)); FindClose(fHandle); return 0; }
-
es gibt doch hier im forum bereits genug funktionierenden code dafür, warum benutzt du den nicht?
-
Hallo, hab die Suche verwendet, gibt keine rekursiv funktionierenden Codes.
-
muhi schrieb:
Hallo,
hab ein Problem mit meiner Datei-Suchfunktion.
ich kann zb nicht nach ".txt" oder so suchen und irgendwas läuft nicht richtig
wie meinst du das bzw. was läuft da nicht richtig? und noch was: der doubleshlash benötigt 1 zeichen, mit der nullterminierung 2

-
Wie wärs mal mit ner Debugsession...

Gruß
-
// if(strstr(new_string,string)!=NULL) if(strstr(wfd.cFileName,string)!=NULL)
-
gg, danke, habs vergessen auch hier auszubessern.
mfg ^^
-
muhi schrieb:
Hallo, hab die Suche verwendet, gibt keine rekursiv funktionierenden Codes.
quod erat demonstrandum: http://www.c-plusplus.net/forum/viewtopic-var-t-is-168044-and-highlight-is-*rekursiv*.html