begin process at 2012 05 29 07:47:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Listing repertoire recrusif


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Listing repertoire recrusif

vendredi 28 octobre 2005 à 21:33:37 | Listing repertoire recrusif

firemax

Bonjour

Mon but est d'ecrire un programme de listing qui list aussi les repertoire , les sous repertoire , les sous sous repertoire et ainsi de suite .
Mais j'ai un segfault lorsque le deuxieme repertoire est lister .

Je trouve pas l'erreur et je vais devenir cingler :D

Please help me :

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

char path[512];
void listDirectory(DIR * directory ,  struct dirent *dir , char  chemin[512]);
void savePath(char chemin[512]);
void restaurPath(char chemin[512]);

int main(int argc, char *argv[])
{
    struct dirent *dir;
    DIR * directory;
    int i;
    char chemin[512];
    bzero(chemin,512);
    strcpy(chemin,"./");
    if(argc == 1)
    {
        printf("Listage du repertoire courant :\n");
        listDirectory(directory ,  dir , chemin);
    }
    else
    {
        for(i = 1;i < argc;i++)
        {
            if(!strcmp(argv[i],"-h"))
            {
                printf("\n-h\t\tAfiche cette aide\n");
                printf("%s rep\t\tListe les repertoire et les sous repertoire de rep\n",argv[0]);
            }
            else
            {
                if (opendir(argv[i]))
                {
                    strcpy(chemin , argv[i]);
                    listDirectory(directory ,  dir , chemin);
                }
                else
                {
                    printf("L'argument est inconu ou le repertoire donner n'existe pas\n");
                }
            }
        }
    }
    return 0;
}



void listDirectory(DIR * directory ,  struct dirent *dir , char chemin[512])
{
    directory = opendir(chemin);
    while((dir = readdir(directory)))
    {
        bzero(chemin , strlen(chemin));
        if(!(!(strcmp(dir->d_name,".")) || !(strcmp(dir->d_name,".."))))
        {
            restaurPath(chemin);

            if(opendir(dir->d_name) != NULL)
            {
                if(strcmp(chemin,dir->d_name) != 0)
                    strncat(chemin, dir->d_name, 512);
                printf("(D)\t%s\n" , dir->d_name);
                savePath(chemin);
                listDirectory(directory, dir, chemin);
            }
            else
            {
                printf("(F)\t%s/%s\n",chemin,dir->d_name);
            }
        }
    }
    closedir(directory);
}

void savePath(char chemin[512])
{
    strcpy(path , chemin);
}

void restaurPath(char chemin[512])
{
            strcpy(chemin , path);
}






Cette discussion est classée dans : chemin, repertoire, char, directory, dir


Répondre à ce message

Sujets en rapport avec ce message

Comment passer un CString en Char ??? [ par Bringdal ] Comment passer un CString en Char ???exemple : pour récupérer un chemin d'acces en vue d'une éxécution du fichier sélectioné par le user.CString Chemi renvoi de type char[] d'une fonction [ par sbouli ] Bonjour,Je suis ULTRA débutant et je cherche à faire une fonction renvoyant du char, voila le principe :char lectureIni (char section[], char clef[], Creation de repertoire sous borland [ par iexid ] bonjour je suis debutant sous borland et plus generalement en C++ (mais pas en Prog objet) et je voudrais savoir comment creer un repertoire .en fait manipulation LPCWSTR et char[] [ par ebooserge ] salut a tous,je suis en train de realiser un petit prog avec directshow et j'ai quelques diffcultées.je dois utiliser une fonction qui prend en parama Copier un repertoire avec ses sous répertoire. Fonction qui a l'air ok INSIDE. amélioration welcome [ par opala ] Bonjour,Je suis débutant en C. Je cherchais une fonction capable de copier un repertoire avec ses sous repertoire.J'ai crée ma propre fonction, qui à affichage du chemin d'un fichier lors d'un listage recursif en C [ par zegota ] voici ma procédure de parcours récursif, je l'ai testé elle fonctionne (sauf pour les rep qui commencent par un "." mais ce n'est pas un problme pour Problem avec les .INI [ par Tidam ] voila je debute en c++ et je commence a me servir des .inij'utilise les WritePrivateProfileString , GetPrivateProfileString , etc... de windows.h mais satané pointeur [ par RamS13 ] cette partie de programme bug a l'endroit rosepouvez vous m'éclairer svp.merci d'avance .bool cmp(char* a,char b[]){ int boucle; unsigned int taillea; Void , char* , long probleme [ par kiki67100 ] Bonjour jai un probleme voici le code#include // pour les 2 apis utilisés FindFirstFile() FindNextFile()#include #include &lt pb chemin accès [ par shub85 ] Bonjour,Voici mon problème je n'arrive pas à réupérer le chmin correcte de mon dossier...Voici mon code: char chemin[MAX_PATH];char *c;c = chemin + Ge


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales