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

  FORUM HardWare.fr
  Programmation
  C

  [C]Comment lister les fichiers *.txt d'un répertoire sous linux?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C]Comment lister les fichiers *.txt d'un répertoire sous linux?

n°1057255
salutsava
Posté le 22-04-2005 à 22:12:19  profilanswer
 

Bonjour,
j'aimerais savoir comment obtenir la liste des fichiers *.txt d'un répertoire. Quelqu'un aurait il un programme pour cela?
 
Je veux que ce programme donne le nom des fichiers *.txt dans un répertoire... Je bloque dessus.
Merci


Message édité par salutsava le 22-04-2005 à 22:19:20
mood
Publicité
Posté le 22-04-2005 à 22:12:19  profilanswer
 

n°1057268
wackevat
Posté le 22-04-2005 à 22:18:47  profilanswer
 
n°1057498
Sve@r
Posté le 23-04-2005 à 09:09:27  profilanswer
 


 
Deux sujets identiques postés le même jour ! franchement ya de l'abus. Qu'on ne trouve pas une info postée il y a 6 mois je veux bien... mais là "salutsava" dépasse un peu les bornes. Faut qu'il arrête un peu de glandouiller et qu'il s'intéresse aux autres s'il veut qu'on s'intéresse à lui !!! :non:


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1057567
black_lord
Truth speaks from peacefulness
Posté le 23-04-2005 à 11:32:50  profilanswer
 

ls *.txt


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1057626
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-04-2005 à 12:33:16  profilanswer
 

Sve@r a écrit :

Deux sujets identiques postés le même jour ! franchement ya de l'abus. Qu'on ne trouve pas une info postée il y a 6 mois je veux bien... mais là "salutsava" dépasse un peu les bornes. Faut qu'il arrête un peu de glandouiller et qu'il s'intéresse aux autres s'il veut qu'on s'intéresse à lui !!! :non:


"Et je casse, et je casse..." -- BdN
 
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1057813
salutsava
Posté le 23-04-2005 à 15:33:42  profilanswer
 

En effet.
Le ls *.txt, je connais bien.
Mais moi, je suis en train d'écrire un programme qui recherche un mot dans les fichiers *.txt d'un repertoire, mais je sais pas comment arriver a lister les fichiers ainsi trouvés...
Dans l'autre sujet, il s'agit du tri.
Il va falloir utiliser opendir, closedir, et readdir, mais je ne trouve pas les lignes exactes.


Message édité par salutsava le 23-04-2005 à 15:34:29
n°1057844
Sve@r
Posté le 23-04-2005 à 16:12:54  profilanswer
 

salutsava a écrit :

En effet.
Le ls *.txt, je connais bien.
Mais moi, je suis en train d'écrire un programme qui recherche un mot dans les fichiers *.txt d'un repertoire, mais je sais pas comment arriver a lister les fichiers ainsi trouvés...


 
Oui, c'est vrai que c'est assez ardu comme problème... grep -l "mot" *.txt
 

salutsava a écrit :

Dans l'autre sujet, il s'agit du tri.


Pour trier les fichiers d'un répertoire il faut d'abord les lire.
 

salutsava a écrit :

Il va falloir utiliser opendir, closedir, et readdir, mais je ne trouve pas les lignes exactes.


 
man opendir
man readdir
man closedir
 
opendir te renvoie un pointeur de type "DIR*" (un petit peu comme "fopen" te renvoie un "FILE *" )
Tu utilises ce pointeur dans "readdir()" en lui balançant aussi l'adresse d'une variable de type "struct dirent". La fonction va te remplir ta variable avec des infos sur les fichiers du répertoire traité (un peu comme "fgets" où tu lui balances l'adresse d'un tableau qui sera rempli avec plein d'octets en provenance du fichier lu) => une boucle est nécessaire parce que tu as beaucoup de fichiers à traiter
Tu fermes le répertoire une fois traité en utilisant "closedir" (un petit peu comme "fclose" )
 
Voilà...  "Si tu sais lire, tu peux y arriver" -- BdN


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1057887
salutsava
Posté le 23-04-2005 à 17:58:07  profilanswer
 

En fait, j'ai le code sous windows.
Je voudrais juste l'adapter pour linux...
 

Code :
  1. // Cette fonction liste les fichiers texte contenus dans le répertoire
  2. void obtenir_noms_fichier(void)
  3. {
  4. WIN32_FIND_DATA File;
  5. HANDLE hSearch;
  6. FILE *fichier_index;
  7. // le fichier index.txt, s'il existe, est effacé (première version du programme)
  8. fichier_index=fopen("index.txt", "w" );
  9. if (fichier_index!=NULL)
  10. {
  11.  hSearch = FindFirstFile("*.txt", &File); // on commence la recherche des fichiers .txt
  12.  if (hSearch != INVALID_HANDLE_VALUE) // si on en a trouvé un
  13.  {
  14.   do
  15.   {
  16.   // on fait atention à ne pas lire le fichier index.txt
  17.    if (strcmp("index.txt", File.cFileName)!=0)
  18.    {
  19.     printf("nom fichier : %s\n", File.cFileName);
  20.     ajouter_fichier_a_index(File.cFileName, fichier_index);
  21.    }
  22.   } while(FindNextFile(hSearch, &File)); // tant qu'on continueà trouver des fichiers .txt
  23.   FindClose(hSearch);
  24.  }
  25.  fclose(fichier_index);
  26. }
  27. else
  28. {
  29.  printf("impossible d'ouvrir le fichier \"index.txt\"\n" );
  30.  getchar();
  31.  exit(0);
  32. }
  33. }


 
 
 
Comment peut on faire cela?

n°1057891
Elmoricq
Modérateur
Posté le 23-04-2005 à 18:05:39  profilanswer
 

En n'utilisant pas les libs Windows, mais les libs standard.
 
La réponse figure dans ce post, la commande "man" est ton amie.

n°1057898
salutsava
Posté le 23-04-2005 à 18:21:22  profilanswer
 

Le probleme c'est je n'ai justement pas pour le moment linux où je suis. Donc je ne peux pas faire appel a MAN...!

mood
Publicité
Posté le 23-04-2005 à 18:21:22  profilanswer
 

n°1057901
salutsava
Posté le 23-04-2005 à 18:28:07  profilanswer
 

Je cherche juste à chercher dans un répertoire, les fichiers *.txt
Je ne vais donc pas ouvrir un repertoire et le fermer.
Cela parait bête mais je n'y arrive pas

n°1057902
Elmoricq
Modérateur
Posté le 23-04-2005 à 18:28:58  profilanswer
 

"man opendir" sous Google ça marche aussi. :D
 
Premier lien trouvé en moins de 10s en tapant "man opendir" :  
http://www.rt.com/man/opendir.3.html

n°1057913
salutsava
Posté le 23-04-2005 à 18:39:11  profilanswer
 

merci ;)


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

  [C]Comment lister les fichiers *.txt d'un répertoire sous linux?

 

Sujets relatifs
[C] Lister les fichiers d un repertoire[PB] Socket linux en C
[OpenGL] Quel langage pour une meilleure portabilité Win/Linuxcompile sous linux marche pas alors que sous windows fonctionne
[C] impossible d'utiliser les thread sous linux problème de linkerediteur genre notepad++ pour linux
créer un répertoire en javaStocker des fichiers sur SQL Serveur ?
Plus de sujets relatifs à : [C]Comment lister les fichiers *.txt d'un répertoire sous linux?


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