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 :

difficulté avec popen


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de Wotan
    Homme Profil pro
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut difficulté avec popen
    Bonjour à tous,
    Je m'intéresse à l'instruction popen qui devrait me permettre d’exécuter des commande DOS dans mon programme. J'ai passé du temps sur la FAQ C à la question "Comment récupérer le résultat d'une commande ?"

    http://c.developpez.com/faq/?page=en...ment#ENV_popen

    En copiant directement ce code, j'obtiens ce que je désire avec l'instruction suivante :
    if((pp = popen("dir *.*", "r")) == NULL)
    ce qui me permet d'avoir le résultat de l'instruction dans le tableau de caractères

    MAIS
    si je change l'instruction en précisant le répertoire qui m'intéresse :
    if((pp = popen("dir E:\Mes Documents\*.*", "r")) == NULL)
    alors le code me dit que les fichiers sont introuvables.

    J'ai essayé différentes combinaisons :
    if((pp = popen("dir E:\\Mes Documents\\*.*", "r")) == NULL)
    if((pp = popen("dir E:/Mes Documents/*.*", "r")) == NULL)
    mais rien n'y fait.
    Depuis une fenêtre commande je parviens à lire le contenu du répertoire mais depuis mon programme C je ne connais que l'échec
    Quelqu'un aurait-il une idée ?

  2. #2
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    Essaye peut être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if((pp = popen("dir E:\\Mes Documents\\*.*", "r")) == NULL)

  3. #3
    Membre actif Avatar de Wotan
    Homme Profil pro
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    Excuses moi mais il me semble que ta proposition correspond à mon deuxième essai
    En l'occurrence je peux déjà te dire que cela ne marche pas.

    merci tout de même

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Par défaut
    Bonjour,

    Je pense que ton chemin n'est pas bon.

    dans mon cas par exemple mes document = D:\Users\ajouan\Documents.
    Si tu es sur win 7 ou 8 ou vista, tu vas dans Mes documents et tu sélectionnes la barre d'adressage pour passer en mode écriture et tu copie colle ton chemin.

  5. #5
    Membre actif Avatar de Wotan
    Homme Profil pro
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    J'ai trouvé

    Alors pour phi1981 le message que me renvoyais la fonction était :
    "Le fichier spécifié est introuvable"

    Pour jouana il y a bien des fichiers à cette adresse.

    Ce qui n'allait pas c'est que l'instruction à écrire est la suivante :
    if((pp = popen("dir E:\\\"Mes Documents\"\\*.*", "r")) == NULL)
    Il faut doubler les \ mais aussi mettre Mes Documents entre \" est comme ça j'accède enfin au contenu de mon répertoire.

    Merci à tous de m'avoir guidé vers la solution

  6. #6
    Membre chevronné
    Inscrit en
    Décembre 2010
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 290
    Par défaut
    Citation Envoyé par Wotan Voir le message
    MAIS
    si je change l'instruction en précisant le répertoire qui m'intéresse :
    if((pp = popen("dir E:\Mes Documents\*.*", "r")) == NULL)
    alors le code me dit que les fichiers sont introuvables.
    Il te le dit de quelle manière ?
    tu veux dire que dans le tableau de chars (je suppose que tu copié l'exemple de la FAQ à l'identique), il y a une chaîne de caractères qui dit "Fichier introuvable" ?

    Déjà en effet il faut doubler l'antislash, c'est bien E:\\Mes Documents\\*.*.
    Ensuite, es-tu bien sûr qu'il y a des fichiers dans le répertoire Mes Documents sur le disque E de ta machine ??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SSIS][2k5]Difficulté avec SSIS
    Par david71 dans le forum SSIS
    Réponses: 9
    Dernier message: 05/01/2006, 19h28
  2. [JS] Difficulté avec le onmouseover...
    Par Pleymo dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/11/2005, 12h09
  3. [VBA] difficultés avec une requête INSERT
    Par elias dans le forum Access
    Réponses: 7
    Dernier message: 06/09/2005, 14h53
  4. Difficultés avec - onchange - !
    Par zakuli dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 20/07/2005, 12h00
  5. Difficultés avec TMenuItem.OnDrawItem
    Par ybruant dans le forum Composants VCL
    Réponses: 4
    Dernier message: 12/01/2005, 11h07

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