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

  FORUM HardWare.fr
  Programmation
  C

  Besoin d'aide pour lister contenu d'un dossier

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide pour lister contenu d'un dossier

n°1325759
mayapour
Posté le 15-03-2006 à 12:56:05  profilanswer
 

Bonjour,
J'ai besoin d'aide de connaisseurs en C , SVP ...
Je souhaite créer une fonction en C qui s'exécutera sous Linux.
Un peu comme ls, je veux lister les fichiers et répertoires d'un chemin indiqué ou du dossier courant si on ne précise pas de chemin.
 
Ce code arrive a lister uniquement les fichiers contenu :
***************************************************************
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
 
int main (int argc, char *argv[])
{
DIR *dirp;
struct dirent *entry;
 
switch (argc) {
case 2 :
dirp = opendir (argv[1]);
if (dirp == NULL) {
fprintf(stderr,"ne sait pas ouvrir %s \n",argv[1]);
return 0;
}
 
for(entry=readdir(dirp);entry!=NULL;entry = readdir(dirp)) {
if (entry->d_name[0] != '.')
printf ("%s\n",entry->d_name);
}
 
closedir(dirp);
break;
default :
fprintf(stderr,"Usage : myls dir_name \n" );
break;
}
return 0;
}
*****************************************************************
 
Moi, je souhaite avoir 2 options possibles :
-l (qui liste contenu fichiers + dossiers simplement Niveau 1 en formatant les colones)
exemple : -rwxr-xr-x   1 astek      operator     497 Oct 13 14:00 stream.a*
 
-R (Pour lister récursivement le dossier, soit son contenu + le contenu de ses dossiers)
 
Ces options doivent pouvoir être passées dans un sens quelconque et se cumuller.
 
Sans l'option -l , on ne gère pas le formatage en colones.
Il doit être capable de faire un "ls -l /dev /usr/sbin".
 
Je vous avoue être un peu perdu, donc toute aide concrète me sera la bienvenue !!!
Par avance UN ENORME MERCI !!

mood
Publicité
Posté le 15-03-2006 à 12:56:05  profilanswer
 

n°1326198
nargy
Posté le 15-03-2006 à 20:55:17  profilanswer
 

tu devrait utiliser un if à la place du switch.
 
Dans ce cas, on teste d abord les arguments avant de les traiter:
tu boucle sur les arguments tant qu il s agit d une option -l ou -R,
si tu tombe sur une autre option tu affiche un message d aide et tu quitte,
les arguments qui suivent sont les répertoires à traiter à l aide d une fonction, genre:
 
void lister(char* dir, int format_long, int recursif);
 
Tu appelle cette fonction pour tous les fichiers/répertoires en argument.
 
La fonction lister(), s apelle elle même si recursif.

n°1326210
skelter
Posté le 15-03-2006 à 21:13:55  profilanswer
 

il y a la bibliotheque argtable pour parser une ligne de commande dans ce style
http://argtable.sourceforge.net/

n°1326295
nargy
Posté le 15-03-2006 à 23:08:49  profilanswer
 

Il y a une fonction POSIX aussi: getopt(), dans unistd.h


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

  Besoin d'aide pour lister contenu d'un dossier

 

Sujets relatifs
Récupérer le contenu textuel d'un noeudprobleme scrol bar( svp de l'aide)
Aide sur du xml[batch] Supprimer les espaces dans les noms de dossier
Replacer contenu celluleChanger le contenu d'une page mais pas l'en-tête !
[VBS] Lister groupes et Utilisateurs dans ADComment tester si un dossier existe ?
Aide pour nom de domaineAide débutant rêgle REGEXP
Plus de sujets relatifs à : Besoin d'aide pour lister contenu d'un dossier


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