Lister un repertoire

bibnouille Messages postés 1 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 février 2003 - 22 févr. 2003 à 12:15
iljamila Messages postés 8 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 17 juin 2003 - 17 juin 2003 à 18:31
je souhaite lister les fichiers d'un repertoire. je n'arrive pas a ecrire la boucle de recherche de fichier!!!!
quelqu'un peut m'aider!!!
Merci d'avance

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 févr. 2003 à 13:02
Salut,
PRET A L'EMPLOI
HANDLE hlst doit etre sur une listbox avec HSCROLL qui est calculee dans boucle.
tu dois avoir aussi:
char szdir[260] rempli avec dossier et "" final.
char szbuff[260] sert pour func dessous.
FACILEMENT MODIFIABLE.

void FilesInDirectory()
{
WIN32_FIND_DATA wfd;
HANDLE hfl;
HDC hdc;
SIZE size;
int len;
SendMessage(hlst, LB_RESETCONTENT, 0, 0);
SendMessage(hlst, LB_SETHORIZONTALEXTENT, 0, 0); // wParam len
strcpy(szbuff, szdir); strcat(szbuff, "*.*");
hfl = FindFirstFile(szbuff, &wfd);
if(hfl == INVALID_HANDLE_VALUE) return;
SendMessage(hlst, WM_SETREDRAW, 0, 0);
len = 0;
hdc = GetDC(hlst);
SelectObject(hdc, (HFONT)SendMessage(hlst, WM_GETFONT, 0, 0));
if(wfd.cFileName[0] != 46) {
if(!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
SendMessage(hlst, LB_ADDSTRING, 0, (long) wfd.cFileName);
GetTextExtentPoint32(hdc, wfd.cFileName, strlen(wfd.cFileName), &size);
if(size.cx > len) len = size.cx;
}
}
while(FindNextFile(hfl, &wfd)) {
if(wfd.cFileName[0] != 46) {
if(!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
SendMessage(hlst, LB_ADDSTRING, 0, (long) wfd.cFileName);
GetTextExtentPoint32(hdc, wfd.cFileName, strlen(wfd.cFileName), &size);
if(size.cx > len) len = size.cx;
}
}
}
FindClose(hfl);
ReleaseDC(hlst, hdc);
if(len) SendMessage(hlst, LB_SETHORIZONTALEXTENT, len+5, 0);
SendMessage(hlst, WM_SETREDRAW, 1, 0);
SendMessage(hlst, LB_SETCURSEL, 0, 0);
}

ciao...
0
jonathanmcdougall Messages postés 64 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 7 mars 2003
23 févr. 2003 à 07:09
> je souhaite lister les fichiers d'un repertoire. je n'arrive pas a ecrire la boucle de recherche de fichier!!!!
> quelqu'un peut m'aider!!!

Le C++ n'a pas de support direct de répertoires (en fait, il n'en a même pas connaissance). Il faudra alors utiliser des fonctions dépendantes de ton système d'exploitation, qu'il faudrait, pour pouvoir t'aider, connaitre.
0
iljamila Messages postés 8 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 17 juin 2003
17 juin 2003 à 18:31
#include <stdio.h>
#include <dirent.h>

int main ()
{

DIR *dir_p;
struct dirent *dir_entry_p;
char *fichier = NULL;

dir_p = opendir("file.txt");
while(NULL !(dir_entry_p readdir(dir_p)))
{
fichier = dir_entry_p->d_name;
fprintf(stdout, " Nom fichier :%s \n", fichier);
}

closedir(dir_p);
}

--> j'espère que ça t'aidera !!
0
Rejoignez-nous