Ok, questa è la funzione explore per intero
codice:
int Explore(char * directory, char * id){
char DATA[10256] = {NULL};
char DATAFILE[5000] = {NULL};
char DATADIR[5000] = {NULL};	
strcpy(DATA, directory); // strcpy cancella la stringa! Uff!
strcat(DATA, "^|^");
strcat(directory, "*.*");
WIN32_FIND_DATA FindFileData;
HANDLE hSearch;
hSearch = FindFirstFile(directory, &FindFileData);
if(FindFileData.dwFileAttributes >= 16 && FindFileData.dwFileAttributes <= 31){
     strcat(DATADIR, FindFileData.cFileName);
     strcat(DATADIR, SEPARATORE);
}
else{
     strcat(DATAFILE, FindFileData.cFileName);
     strcat(DATAFILE, SEPARATORE);
}
while(FindNextFile(hSearch, &FindFileData) != 0){
	if(FindFileData.dwFileAttributes >= 16 && FindFileData.dwFileAttributes <= 31){
     strcat(DATADIR, FindFileData.cFileName);
     strcat(DATADIR, SEPARATORE);
	}
	else{
     strcat(DATAFILE, FindFileData.cFileName);
     strcat(DATAFILE, SEPARATORE);
	}
 }
strcat(DATA, DATADIR);
strcat(DATA, "^|^");
strcat(DATA, DATAFILE);
	list(DATA, id);
return 0;
}
Questo è invece il codice con cui viene richiamata
codice:
	else if(!strcmp((command), "Explore")){
		Explore(arg1, cpid);
	}