IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Unix: recuperer tout les fichiers textes d'un repertoire?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Par défaut Unix: recuperer tout les fichiers textes d'un repertoire?
    Bonjour;

    Je souhaiterai recupérer tout les fichiers textes d'un repertoire (en ignorant les sous repertoires et les fichiers n'etant pas des .txt)...
    Comment dois je faire? ( Fichier = readdir(Repertoire) )
    Merci pour l'aide

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    opendir(), une boucle de readdir(), et tu vérifies chaque nom de fichier...
    Ne pas oublier le closedir() à la fin...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre éclairé Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Par défaut
    ben oui mais comment verifier que je ne recupere que les fichier txt...car aujourd'hui je recupere tout meme les repertoires

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Code C : 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
    /*----------------------------------------------------------------------------
    Fonction endsWith():
    	fonction pour tester si une chaîne se termine par une autre
    Paramètres:
    	toTest [in] Chaîne à tester
    	end   [in] La Fin voulue
    Retourne:
    	Une valeur non-nulle si toTest se termine par end.
    ----------------------------------------------------------------------------*/
    int endsWith(char const *toTest, char const *end)
    {
    	size_t endLength = strlen(end);
    	size_t toTestLength = strlen(toTest);
    	int bResult = 0;
     
    	if(toTestLength >= endLength)
    	{
    		char const * endToTest = toTest + toTestLength - endLength;
    		if(strcmp(endToTest, end)==0)
    			bResult = 1;
    	}
    	return bResult;
    }
    Ne pas oublier de convertir le nom en uppercase ou lowercase pour avoir une comparaison indépendante de la casse...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    bonjour,

    oui c est sur que readdir te liste tout les fichiers (les repertoires sont des fichiers, speciaux certes, mais fichiers). Apres a toi de traiter que ceux qui t interessent ou pas.

    Par contre les extensions de fichiers n ont pas enormement de sens sous unix.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par BainE Voir le message
    bonjour,

    oui c est sur que readdir te liste tout les fichiers (les repertoires sont des fichiers, speciaux certes, mais fichiers). Apres a toi de traiter que ceux qui t interessent ou pas.

    Par contre les extensions de fichiers n ont pas enormement de sens sous unix.
    Absolument, il y a d'ailleurs un post d'avant les vacances traitant de comment savoir si un fichier est binaire ou texte..

  7. #7
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Absolument, il y a d'ailleurs un post d'avant les vacances traitant de comment savoir si un fichier est binaire ou texte..
    Heu un fichier texte, ce n'est pas un fichier binaire qui respecte une certaine forme ?
    Pour moi, un fichier texte est aussi un fichier binaire. C'est son contenu et l'interprétation de son contenu qui fait que l'utilisateur le nomme "fichier texte"
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  8. #8
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 480
    Par défaut
    Citation Envoyé par Jayceblaster Voir le message
    ben oui mais comment verifier que je ne recupere que les fichier txt...car aujourd'hui je recupere tout meme les repertoires
    Si quelqu'un a eu la bêtise de nommer un répertoire sous la forme « xxxxx.txt », tu peux vérifier la nature du fichier avec stat() et en vérifiant si le fichier que tu vérifies est bien un fichier ordinaire avec la macro S_ISREG(). -> man 2 stat.

    C'est tout ce que tu peux faire à ce stade. Les reconnaissances « heuristiques » accomplies par la commande file, par exemple, sont menées en analysant le contenu du fichier.

    Bon courage.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/08/2014, 12h35
  2. Suppression de tous les fichiers textes d'un répertoire
    Par Cathy dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 20/09/2005, 17h11
  3. Modifier tout les fichier comportant une chaine
    Par narmataru dans le forum Linux
    Réponses: 10
    Dernier message: 28/09/2004, 16h58
  4. fichier ini -> recuperer toute les sections
    Par abignon dans le forum MFC
    Réponses: 2
    Dernier message: 08/04/2004, 18h46
  5. Réponses: 3
    Dernier message: 04/02/2004, 18h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo