Je voudrais savoir si dans un opendir, il faut passer simplement le nom du répertoire à ouvrir ou faut il lui passer le chemin+nom du repertoire?
Merci
Je voudrais savoir si dans un opendir, il faut passer simplement le nom du répertoire à ouvrir ou faut il lui passer le chemin+nom du repertoire?
Merci
Envoyé par theshark85
Il faut tout lui donner par exemple
opendir("/usr/share/doc");
Ben j'ai pas du comprendre un truc.
Je veux tester si le répertoire existe, si c'est le cas, j'en cree un nouveau avec un autre nom, et s'il existe pas on le cree.
Mon probléme, la boucle de recherche ne fonctionne pas. Si j'ai des déjà le répertoire de crée, elle le réecrase quand meme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 DIR *dirlog; /*recherche d'existance*/ for(i=0;dirlog!=NULL;i++) { sprintf(PATH_LOG,"%s/LOGv%d_%s",trimCRLF(PATH_MAIN),i,argv[2]); dirlog=opendir(PATH_LOG); i++; } /*test bidon*/ if(dirlog!=NULL) printf("Fichier existant\n"); else printf("Fichier inexistant\n"); /*Creation du repertoire*/ sprintf(PATH_LOG,"mkdir \"%s/LOGv%d_%s",trimCRLF(PATH_MAIN),i,argv[2]); system(PATH_LOG); /*creation du chemin du log*/ sprintf(PATH_LOG,"%s/LOGv%d_%s",trimCRLF(PATH_MAIN),i,argv[2]); printf("PATH_LOG =>%s\n",PATH_LOG);
Ca, pour commencer, c'est un FOR génétiquement modifié... soit tu fais un FOR et dans ce tu ne géres pas le compteur de boucle dans le bloc d'instructions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 /*recherche d'existance*/ for(i=0;dirlog!=NULL;i++) { sprintf(PATH_LOG,"%s/LOGv%d_%s",trimCRLF(PATH_MAIN),i,argv[2]); dirlog=opendir(PATH_LOG); i++; }
Soit tu fais un "while" et dans ce cas tu peux gérer un compteur.
ici i est incrémenté 2 fois ... for(; ;i++)
et i++;}
... ensuite dans le IF, la 2ème condition est la condition de sortie. Ici, ton if ne sort que ... quand
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 dirlog= null ....
Du coup dans "test bidon"
est toujours faux, et tu passes toujours dans le ELSE... donc tu écrases tout le temps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if(dirlog!=NULL)
Mais son des test bidon, qui ne doivent avoir aucune utilite que pour savoir ce que ça fait pour moi meme.
Ce que je veux, c'ets que quand ça de la recherche j'ai le nouveau i, qui est la nouvelle evrsion du repertoire.
J'avais pas vu en postant que j'avais oublie leCar j'ai aussi essayé avec un do while, et pareil, meme comportement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part i++;
Et sinon pour mon for, je sais qu'il etai genetiquement modifie. Mais bon ça fait un petit moment que je me prend la tete dessus, et doit y avoir un truc qui m'échappe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 DIR *dirlog; i=0; do { sprintf(PATH_LOG,"%s/LOGv%d_%s",trimCRLF(PATH_MAIN),i,argv[2]); dirlog=opendir(PATH_LOG); i++; } while(dirlog!=NULL);![]()
Partager