struct _finddata_t c_file;
intptr_t hFile;
if( (hFile = _findfirst( findmask, &c_file )) == -1L )
return 0;
else
{
do {
char subfile[1024];
if(dirname[strlen(dirname)-1]=='/'|'\\')sprintf(subfile, "%s%s",dirname, c_file.name);
else sprintf(subfile, "%s/%s",dirname, c_file.name);
if(c_file.attrib & _A_SUBDIR )
{
char * res = SearchInFiles(subfile, MaterialName);
if(res!=0) return res;
}
else
{
if(strcmpi(MaterialName, GetMatNameFromFile(subfile))==0)
{
char *retfile = new char[strlen(subfile)];
strcpy(retfile, subfile);
return retfile;
}
}
} while( _findnext( hFile, &c_file ) == 0 );
_findclose( hFile );
}
цикл поиска файлов
Код:
Но при переносе проги поди линукс обнаружилось, что там таких функций нету. Так же отсутствует файл dos.h, так что использовать стандартные findfirst()/findnext() так же не представляется возможным. Гугл невнятно молчит.
Помогите пожалуйста...
Я лично в подобном случае использовал библиотеку boost - вариант не лучший, конечно, но зато кроссплатформенно.
Смотри man по функциям opendir, readdir, closedir