Recuperer le contenu d un dossier en C [Résolu]

Ptlpn 16 Messages postés lundi 5 avril 2004Date d'inscription 9 février 2005 Dernière intervention - 27 janv. 2005 à 16:29 - Dernière réponse : yserver 203 Messages postés lundi 2 août 2004Date d'inscription 8 septembre 2006 Dernière intervention
- 30 janv. 2005 à 20:39
Bien le bonjour,


J ai une nouvelle colle a vous poser : comment puis-je faire pour recuperer le contenu d un dossier de mon choix, en C?


Merci d avance

Ptlpn 0o.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
alkove 37 Messages postés jeudi 27 mars 2003Date d'inscription 6 mai 2005 Dernière intervention - 27 janv. 2005 à 18:12
3
Merci
salut,



regarde :

sous dos : opendir() puis readdir()

sous windows FindFirstFile() puis FindNextFile()

Merci alkove 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de alkove
Neo020585 178 Messages postés lundi 10 mars 2003Date d'inscription 6 juillet 2009 Dernière intervention - 28 janv. 2005 à 09:52
0
Merci
Il faut pour cela créer une fonction qui va rentrer dans le répertoire que tu as choisis.
Elle va ensuite regarder le 1er élément :
- si c'est un dossier, elle rentre dedans, puis elle parcours à nouveau ce dossier en appelant la fonction que tu as créee (récursivité), etc...
- si c'est un fichier, tu récupère le nom du fichier, et tu fais ce que tu veux avec :)
J'ai déjà fait cette fonction, en C++, et j'ai trouvé la source sur cppfrance. (en fait, je l'ai modifiée car elle ne me donnait pas assez d'info pour mon prog !) :
http://www.cppfrance.com/codes/SCANDISC_SIMPLE_POUR_LISTER_LE_CONTENU_DUN_REPERTOIRE_-_DES_SOUS-REPERTOIRES-/22116.aspx
Je ne peux pas t'assurer qu'elle fonctionne en C, mais mon raisonnement est celui que tu doit appliquer pour obtenir un bon résultat.


Néo020585

La programmation, c'est l'art de découvrir
Commenter la réponse de Neo020585
yserver 203 Messages postés lundi 2 août 2004Date d'inscription 8 septembre 2006 Dernière intervention - 30 janv. 2005 à 20:39
0
Merci
Voila un exemple de fonction qui supprime tous les fichiers et repertoires d'un repertoire passé en parametre

//---------------------------------------------------------------------------
//Suppression récursive des fichiers d'un repertoire
void fSupp_Files ( char f_Rep [ 512 ] )
{
//Déclaration des variables
char f_Chemin [ 512 ] ;
WIN32_FIND_DATA wData ;
HANDLE f_Find ;

//Initialisation des variables
//Ajout de *.* f_Chemin
sprintf ( f_Chemin , "%s*.*" , f_Rep) ;
//Initialisation du Handle de recherche de fichiers
f_Find = FindFirstFile(f_Chemin, &wData);
//Suppresion de *.* a f_Chemin
strcpy ( f_Chemin , f_Rep ) ;

if ( f_Find != INVALID_HANDLE_VALUE)
{
do
{
if ( ( strcmp (wData.cFileName , "..") ) && ( strcmp (wData.cFileName, ".") ) )
{
if ( wData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
{
//puisque c'est un repertoire, on recupere la nouvelle adresse, et on va rentrer dedans...
sprintf ( f_Chemin , "%s%s\", f_Rep , wData.cFileName ) ;
//On rappelle la fonction pour qu'elle supprime les fichiers du répèrtoire
fSupp_Files ( f_Chemin ) ;
RemoveDirectory ( f_Chemin ) ;

// reviens un repertoire en arriere
int j = strlen ( f_Chemin ) - 2 ;
while ( j > 0 )
{
if ( f_Chemin [ j ] == '\\' )
{
f_Chemin [ j+1 ] = '\0' ;
break ;
}
j -- ;
}
}
else // ce n'est pas un répèrtoire donc le fichier est supprimé
sprintf ( f_Chemin , "%s%s" , f_Rep , wData.cFileName ) ;
DeleteFile ( f_Chemin ) ;

}
} while ( FindNextFile ( f_Find , &wData ) ) ;
}
FindClose( f_Find );
Commenter la réponse de yserver

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.