WIN32_FIND_DATA

michelmt Messages postés 15 Date d'inscription dimanche 19 janvier 2003 Statut Membre Dernière intervention 16 mai 2004 - 16 mai 2004 à 02:13
michelmt Messages postés 15 Date d'inscription dimanche 19 janvier 2003 Statut Membre Dernière intervention 16 mai 2004 - 16 mai 2004 à 11:58
Salut ,
voici un bout de code pour un explorer
et ce que je voudrais savoir c'est comment lui faire montré
dossiers et les fichiers .jpg ,dans ce code cibas il montre juste les dossier et LE fichier "jvc.JPG" parceque je ne sais pas comment faire pour lui demandé toutes les "*.jpg" .

-----------------------------------------------
Restart:
WIN32_FIND_DATA wData;
HANDLE listing;
listing=FindFirstFile(Path,&wData);
if (listing==INVALID_HANDLE_VALUE)
return;

int bList=true;
while(bList)
{
LvItem.iItem=ListItem;
char szImlListView[256];
if(wData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) //Verifie que c'est bien un Dossier
{
if(strcmp(wData.cFileName,".")!=0 && strcmp(wData.cFileName,"..")!=0 && !bRestart)

{

tvinsert.item.pszText=wData.cFileName;
SendDlgItemMessage(hDlgMain,IDC_TREE1,TVM_INSERTITEM,0,(LPARAM)&tvinsert);
LvItem.pszText=wData.cFileName;
sprintf(szImlListView,"%s\\%s",Adresse,wData.cFileName);
LvItem.iImage=ImlListView(szImlListView);
SendDlgItemMessage(hDlgMain,IDC_LIST1,LVM_INSERTITEM,0,(LPARAM)&LvItem);
ListItem++;
}
}
else
{
if(bRestart)

if(strcmp(wData.cFileName,"jvc.JPG")==0)
{
{

LvItem.pszText=wData.cFileName;
sprintf(szImlListView,"%s\\%s",Adresse,wData.cFileName);
LvItem.iImage=ImlListView(szImlListView);
SendDlgItemMessage(hDlgMain,IDC_LIST1,LVM_INSERTITEM,0,(LPARAM)&LvItem);
ListItem++;
}
}
}
bList=FindNextFile(listing,&wData);
}
FindClose(listing);

if(!bRestart)
{
bRestart=true;
LimitFolderFile=ListItem;
goto Restart;
}
}

-------------------------------------------
auriez-vous une idée ?

M.T.

2 réponses

mirlaine Messages postés 32 Date d'inscription samedi 9 août 2003 Statut Membre Dernière intervention 24 août 2005
16 mai 2004 à 03:32
je sais faudré que tu precise si tu ve chercher les *.jpg dans tout les sous repertoires...

sinon il te fau faire 2 recherche en meme temp

BOOL CherCheDossier(char *path)
{
WIN32_FIND_DATA wData;
HANDLE listing;
char *path2;

path2=GlobalAlloc(GPTR,strlen(path)+4);
strcpy(path2,path);
strcat(path2,"W*");

listing=FindFirstFile(path2,&wData);
if(listing == INVALID_HANDLE_VALUE)
return FALSE;

if( (wData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& (!strcmp(wData.cFileName,".")==0)
&& (!strcmp(wData.cFileName,"..")==0) )
CherCheFichier(path,wData.cFileName);

while( (FindNextFile(listing,&wData) ) )
if( (wData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& (!strcmp(wData.cFileName,".")==0)
&& (!strcmp(wData.cFileName,"..")==0) )
CherCheFichier(path,wData.cFileName);

GlobalFree(path2);
FindClose(listing);
return TRUE;
}

puis

BOOL CherCheFichier(char *path,char *dossier)
{
char *path2;
WIN32_FIND_DATA wfData;
HANDLE log=NULL;

DWORD taille=strlen(dossier)+strlen(path)+12;

path2=GlobalAlloc(GPTR,taille);

strcpy(path2,path);
strcat(path2,dossier);
strcat(path2,"\\*.log");

//printf("%s\n",path2);

log=FindFirstFile(path2,&wfData);
if(log == INVALID_HANDLE_VALUE)
return FALSE;

PatchME(path,dossier,wfData.cFileName);

while( FindNextFile(log,&wfData) )
{
PatchME(path,dossier,wfData.cFileName
}

FindClose(log);
GlobalFree(path2);
return TRUE;
}
0
michelmt Messages postés 15 Date d'inscription dimanche 19 janvier 2003 Statut Membre Dernière intervention 16 mai 2004
16 mai 2004 à 11:58
et bien le programe me montre déjà tout les répertoires et sous répertoires et aussi tout les dossiers MAIS pour les dossiers je ne veux pas tout les voir ,juste les (JPG) et continué de voir les répertoires

M.T.
0
Rejoignez-nous