Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1348 connectés 

  FORUM HardWare.fr
  Programmation
  C

  programme qui traite tous les fichiers d'un repertoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programme qui traite tous les fichiers d'un repertoire

n°1681138
romainr
Posté le 03-02-2008 à 19:43:10  profilanswer
 

Bonjour,
 
Je vous explique mon probléme. J'ai un programme en C qui récupére des données (il ouvre un fichier et met les données dans un autre fichier) , j'ai un répertoire contenant environ 1000 fichiers, et il faut que je les traite tous. J'aimerais avoir un programme (une sorte de boucle???) en C qui permette de traiter tous les fichiers du repertoire 1 par 1.
Pourriez vous m'aidez???
 
 :??:  
 
Merci d'avance    

mood
Publicité
Posté le 03-02-2008 à 19:43:10  profilanswer
 

n°1681146
Elmoricq
Modérateur
Posté le 03-02-2008 à 20:16:02  profilanswer
 

Zieute du côté des fonctions opendir(), readdir(), etc.

n°1681529
romainr
Posté le 04-02-2008 à 16:42:16  profilanswer
 

Bonjour tout le monde,
 
 
Je veux faire un programme qui liste tous les fichiers d'un repertoire et les ouvre tous un par un. Je vous montre le programme que j'ai fait:  
 
 
#include <sys/types.h>
#include <dirent.h>
int main(void)
{  
int n=0;
int nbMesures;
char ligne[512]; //Sert à récupérer la ligne de temps.
char point[512]; //Sert à récupérer le nombre de mesures d'un points.
char ligne2[512]; //Sert à récupérer la ligne d'atténuation.
char lignesuite[512];  
char recupligne[512];   //recuperer le nom du fichier
 
struct dirent *lecture;
   DIR *rep;
   rep = opendir("/home/essai" );
   while ((lecture = readdir(rep)))
   {
 n=n+1;
       if (n>2)
 {
 printf("FICHIER: %s\n", lecture->d_name);
 FILE* f = fopen(lecture->d_name,"r" ); //ici je veux ouvrir le fichier listé
 FILE* f2 = fopen("resultat.txt","w" );
 fscanf(f,"%s",& recupligne);    //ici je veux recupérer la 1ere ligne du fichier listé
 fprintf(f2,"%s", recupligne); //ici je veux écrire la ligne récupérer dans un fichier créé  
}
    }
closedir(rep);
   
   
 
   return 0;
}
 
j'arrive à lister les fichiers mais pas à l'ouvrir!!! pourriez vous m'aidez?
 
Merci d'avance

n°1681530
Elmoricq
Modérateur
Posté le 04-02-2008 à 16:53:24  profilanswer
 

Les sujets suivont ont étés fusionnés à ce sujet par Elmoricq

  • aide sur un porgramme en C qui doit ouvrir les fichiers d'un repertoir

n°1681534
tpierron
Posté le 04-02-2008 à 16:59:49  profilanswer
 

Bah, problème archi-classique : le champ "lecture->d_name" ne contient pas le répertoire.
 
Edit: arf et évite à tout prix fscanf("%s" ) pour récupérer une ligne dans un fichier. fgets() est beaucoup moins casse gueule.


Message édité par tpierron le 04-02-2008 à 17:00:56
n°1725243
jeufman28
Posté le 27-04-2008 à 20:37:16  profilanswer
 

bonjour,
Je suis sous windows avec VS 2005. Je suis débutant.
Je souhaite utiliser les fonctions opendir/readdir ... pour ouvrir et traiter uniquement les fichiers de type .spd. Ensuite je veux faire un .exe qui cherche et traite les fichiers qui sont dans le repertoire courant. Mais voila je comprends pas bien comment utiliser opendir().
 
Merci pour votre aide !
 

Code :
  1. #include "stdafx.h"
  2. #include "stdio.h"
  3. #include "stdlib.h"
  4. #include "sys/types.h"
  5. #include "dirent.h"
  6. int _tmain(int argc, _TCHAR* argv[])
  7. {
  8. #define MAX_NAME 40
  9. char nomfichier[MAX_NAME];
  10. struct dirent *lecture;
  11. DIR *rep;
  12. rep=opendir("???" ); que mettre ici ? un chemin relatif ? par rapport a quel fichier du projet ? Chemin absolu ?
  13. int n;
  14. FILE *source;
  15. FILE *destination;
  16. int nbligne=1,nbcoma=0;
  17. int c;
  18. while((lecture = readdir(rep)))
  19. {
  20.  strcpy(nomfichier,lecture->d_name);
  21.  n=strlen(nomfichier);
  22.  if(((nomfichier[n-1])='d') || ((nomfichier[n-2])='p') || ((nomfichier[n-3])='s') || ((nomfichier[n-4])='.'))
  23.  {
  24.   source = fopen(nomfichier,"r" );
  25.   if(source == NULL)
  26.   {
  27.    printf("le fichier n'existe pas\n" );
  28.    return 0;
  29.   }
  30.   else printf("le fichier existe et est ouvert\n" );
  31.   nomfichier[n-1]='t';
  32.   nomfichier[n-2]='x';
  33.   nomfichier[n-3]='t';
  34.   destination = fopen(nomfichier,"w" );
  35.   if(destination == NULL)
  36.   {
  37.    printf("le fichier n'existe pas\n" );
  38.    return 0;
  39.   }
  40.   else printf("le fichier existe et est ouvert\n" );
  41.  }
  42.  //traitement
  43.  fclose(source);
  44.  fclose(destination);
  45. }
  46. return 0;
  47. }


Message édité par jeufman28 le 27-04-2008 à 23:22:10

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  programme qui traite tous les fichiers d'un repertoire

 

Sujets relatifs
[fichier.bat]Un programme qui fermerait tous les dossiers actifsLire les données des capteurs dans un programme.
MS-DOS copier des fichiersdes remplacements dans des fichiers unix
sauvegarder des feuilles dans des fichiers différentsCopie d'une répertoire avec avancement
les fichiersrepertoire
Copier des codes d'un XLS à un autre programme[C++] Transfert de fichiers
Plus de sujets relatifs à : programme qui traite tous les fichiers d'un repertoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR