Heu :
/* Faudrait ajouter la chaine repertoire, non? et pour cela il faut changer le malloc ...*/
J'ai pas compri qu'es ce qu'il faut faire![]()
Heu :
/* Faudrait ajouter la chaine repertoire, non? et pour cela il faut changer le malloc ...*/
J'ai pas compri qu'es ce qu'il faut faire![]()
Supposons que ton répertoire courant a un répertoire essai et que dans le répertoire essai il existe un autre répertoire nommé bonjour.Envoyé par lapras123
Pour ouvrir le répertoire bonjour, faudrait avoir une chaîne :
D'ailleurs, c'est "./" et non "/" parce que sinon tu vas avoir du mal..../essai/bonjour
Jc
je vais travailler régler ce probleme de Sous-sous répertoire![]()
Voila ce que j'ai trouvé mais il semble y abvoir un léger probleme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 chaine=malloc(strlen(lecture->d_name) + strlen(repertoire)); /* Faudrait ajouter la chaine repertoire, non? et pour cela il faut changer le malloc ...*/ strcat(chaine, repertoire); strcat(chaine, "/"); strcat(chaine, lecture->d_name);
ca a l'air de marcher au premier tour on a : ./essai
apres on a : caracteres_bizarre./essai/essai2
je sais pas ce que sont ces caractere bizarres :s
- Ton calcul de la longueur de la chaîne est fausse.Envoyé par lapras123
- C'est strcpy pour la première copie
Jc
Merci tout marche !!
je récapitule le code pour les intéréssés :
Fonction qui affiche le contenu d'un répertoire avec ses fichiers et sous-répertoires :
J'ajoute que mon systeme n'est pas fiable : on peut rencontrer un fichier sans point et un répertoire avec point.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 #include <stdio.h> #include <sys/types.h> #include <dirent.h> #include <stdlib.h> #include <string.h> void affiche_repertoire(char repertoire[]); int main(void) { char repertoire[]="."; affiche_repertoire(repertoire); system("PAUSE"); return 0; } void affiche_repertoire(char repertoire[]) { struct dirent *lecture; DIR *rep; rep = opendir(repertoire); if(rep != NULL) { printf("___________________________\n"); while ( (lecture = readdir(rep)) != NULL) { if(strchr(lecture->d_name, '.')==NULL) { char *chaine=NULL; chaine=malloc(strlen(lecture->d_name) + strlen(repertoire)+2); strcpy(chaine, repertoire); strcat(chaine, "/"); strcat(chaine, lecture->d_name); printf(" Repertoire %s : \n", chaine); sleep(1000); affiche_repertoire(chaine); free(chaine); } else { printf("FICHIER: %s\n", lecture->d_name); } } printf("___________________________\n"); closedir(rep); } }
je pense qu'il faut faire une sortte de is_file en php :
si fopen le lecture->d_name n'eest pas bon, alors c'est un répêrtoire ^^
Merci a tous de votre aide !
PS : je viens d'essayer d'afficher tous les repertoires/fichier a partir de C:\\
Ca va super vite mais es ce que mon ordi va tenir le coup avec cette multitude de fichiers ,??
Partager