Comment distinguer entre fichier et repértoire!

Signaler
Messages postés
7
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
25 janvier 2006
-
Messages postés
547
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
7 octobre 2007
-
salut tlm
Je viens d'ecrire une fonction qui parcours le répertoire passé en argument et liste son contenu (merci à Fred), mais il reste encore un pb, il ne distingue pas entre fichier et repértoire (sauf si je lui passe en argument le repertoire courant là où il se trouve ! c'est étrange!).

en effet voila le code que j'ai ecris :

#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>

#include

int main( int argc, char* argv[] )
{

if( argc < 2 )
{
std::cerr << "Usage: " << std::endl;
std::cerr << argv[0] << " DicomDirectory"
<< std::endl;
return EXIT_FAILURE;
}

std::string tmp;
DIR *dp;
dirent *ep;
struct stat buf;

dp = opendir(argv[1]);
if (dp != NULL)
{
while ((ep = readdir(dp)) != NULL)
{
tmp = ep->d_name;
std::cout<<tmp.c_str();
if (stat(tmp.c_str(), &buf))
{
buf.st_mode = 0;
buf.st_size = 0;
buf.st_atime = 0;
buf.st_mtime = 0;
buf.st_ctime = 0;
}

if (S_ISDIR(buf.st_mode))
std::cout<<" est un répértoire"<<std::endl;
else
std::cout<<" est un fichier"<<std::endl;

}
closedir (dp);

}

return EXIT_SUCCESS;
}


merci d'avance
TimCha

2 réponses

Messages postés
7
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
25 janvier 2006

Resalut
j'ai copié l'executable sous un autre répertoire et je l'ai executé là et ça marche bien.
Donc il ne marche bien que dans le répertoire courant ( où il se trouve) et ses sous répertoires.
est ce que qqn as une idée sur ce qui se passe?
Messages postés
547
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
7 octobre 2007
1
Bonjour,



cette demande fait doublon avec celle-ci : http://www.cppfrance.com/forum.v2.aspx?ID=646260

qui a déjà reçu une réponse.

Cordialement

Fred Cailleau-Lepetit (http://cfred.free.fr)