Problem z przeszukiwaniem dysku

0

Moje pytanie dotyczny algorytmu przeszukiwania dysku mianowicie dlaczego kiedy próbuję zrobić coś takiego:

#include <iostream>
#include <stdlib.h>
#include <windows.h>
using namespace std; 

void Szukaj(char *curdir)
{ 
 WIN32_FIND_DATA wfd;
 BOOL IsFile = TRUE;
 HANDLE hFile;
 char path[200];
 SetCurrentDirectory(curdir); 
 hFile = FindFirstFile("*.*", &wfd);
 while (IsFile)
 { 
   char *sstr;
   GetFullPathName(wfd.cFileName, 199, path, NULL); 
   if ((wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && (wfd.cFileName[0] != '.'))
       Szukaj(path);
   if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&((sstr = strstr(path, "SzukanyPlik"))))
       cout << path << endl;
   IsFile = FindNextFile(hFile, &wfd);
 }
   if (curdir[0] > 3) 
       SetCurrentDirectory("..");
} 


int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int nCmdShow)
{
Szukaj("C:\\");
system("PAUSE");
return 0;
}

to program się zapętla ?? Czy przyczyną może być to że mam tylko jedną partycję ?? Tak mi się wydaje bo na dwóch partycjach, a także kiedy wyszukuj w podfolderach np. C:\Windows itp. to wszystko działa ok. Wie ktoś jak to obejść ??

0
  if ((wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && (wfd.cFileName[0] != '.'))

tu się zapętla bo nie dałeś warunku dla ".."

&& (wfd.cFileName[0] != '..')
0

Dzięki wielkie!!

0

Hmmm... probuje wykorzystac powyzszy kod ( :> :P ) (z popraka ofkoz), ale mi nie chodzi. Nie wiesza sie, nie wywala bledow, tylko nie wypisuje wynikow, wie ktos co moze byc przyczyna?

dopsiane:
0x666 : powaznie???? ej wiesz co, bez Ciebie to bym nie wiedzial [rotfl]

0
klajter napisał(a)

Hmmm... probuje wykorzystac powyzszy kod ( :> :P ) (z popraka ofkoz), ale mi nie chodzi. Nie wiesza sie, nie wywala bledow, tylko nie wypisuje wynikow, wie ktos co moze byc przyczyna?

Wpisz najpierw co ma szukać :D

PS. jako ciekawostkę dodam, że bez tej poprawki też działa (co jest całkiem oczywiste) ;).

1 użytkowników online, w tym zalogowanych: 0, gości: 1