|
|
|
|
для: alex19921992
(09.04.2007 в 13:40)
|
| посмотрите функцию. она должна искать на диске все файлы, в именах которых встречается слово gus. функция не работает. почему?
int poisk(char* path0)
{
char *path;
path=new char[strlen(path0)+2];
strcpy(path,path0);
strcat(path,"*");
path[strlen(path)]='\0';
//MessageBoxA(0,path,"test",0);
WIN32_FIND_DATA f;
HANDLE s;
s=FindFirstFile(path,&f);
if(s==INVALID_HANDLE_VALUE || f.cFileName[0]=='.'){
//MessageBox(0,"no files",0,0);
delete path;
return 0;
}
while(s){
if(f.cFileName[0]!='.'){
if(f.dwFileAttributes<=23 && f.dwFileAttributes>=16)
{//DIRECTORY
//MessageBoxA(0,f.cFileName,"dir",0);
char*path1;
path1=new char[strlen(path0)+strlen(f.cFileName)+3];
strcpy(path1,path0);
strcat(path1,f.cFileName);
strcat(path1,"\\");
strcat(path1,"\0");
//MessageBoxA(0,path1,"dir",0);
poisk(path1);
delete path1;
}
else
{//FILE
//MessageBoxA(0,f.cFileName,"File",0);
if(strstr(f.cFileName,"gus")!=NULL)
{
char* path2;
path2=new char [strlen(path0)+strlen(f.cFileName)+2];
strcpy(path2,path0);
//strcat(path2,"\\");
strcat(path2,f.cFileName);
strcat(path2,"\0");
MessageBoxA(0,path2,"GUSS!!!",0);
//MessageBeep(MB_ICONHAND);
delete path2;
}
}
}
if(!FindNextFile(s,&f))break;
}
delete path;
return 0;
}
|
| |
|
|