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 :

fopen et les chemins relatifs


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 23
    Points : 14
    Points
    14
    Par défaut fopen et les chemins relatifs
    Bonjour,

    Sachant que mon .exe est a la racine de mon F et que le fichier texte doit aller dans un dossier, voici mes essais et résultats :



    filename = "F:\\test.txt" --> OK
    filename = "F:/test.txt" --> OK

    filename = "F:\\newdossier\\test.txt" --> OK
    filename = "F:/newdossier/test.txt" --> OK

    Etant donné le fait que mon programme sera appliqué sur des machines différentes, je ne connaitrai pas la lettre. J'ai donc essayé les chemins suivants :

    filename = "./test.txt" --> NOK
    filename = "test.txt" --> NOK

    filename = "./newdossier/test.txt" --> NOK
    filename = "newdossier/test.txt" --> NOK

    fopen( filename, "w+" )

    Même les doubles backslashes, ne fonctionnent pas....

    Donc help me plizzzz

  2. #2
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    Bonjour,

    plusieurs pistes :
    1 - ton prog ne s execute paut etre pas la ou tu le crois... (pour tester tu peux ouvrir le fichier "." et afficher son nom complet)
    2 - j ai cru comprendre depuis l autre thread que c est une appli graphique, tu peux pas utiliser un fileChooser (le compo graphique utiliser notamment dans tous les softs quand on demande "ouvrir fichier") et demander a l utilisateur de spécifier le fichier ?
    "vaste programme"

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Hypothèse: Tu as dû exécuter ton programme avec le debugger ou à partir de l'IDE: donc le chemin d'exécution n'est probablement pas celui que tu penses. Néanmoins, si tu veux une solution plus ou moins générique, tu peux explorer les pistes suivantes:
    -> Solution BainE (rendons à Cesar, ce qui est à Cesar): une IHM pour saisir le fichier,
    -> Argument: tu passes en argument de ton exécutable le chemin du fichier,
    -> Chemin relatif: voir le post suivant.
    Cordialement.

  4. #4
    Membre éclairé
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Points : 709
    Points
    709
    Par défaut pour information
    Bonjour;
    Tu es vraiment dans la bonne voie
    Quand on fait fopen('NomFichier.txt',rb) on ouvre le fichier dans le repertoire d'execution du programme en cours
    Mais si ton programme execute par exemple un appel vers une imprimante, tu ne pourras plus ouvrir ton fichier.
    If you type Google into Google, you Can break the internet" - The IT Crowd

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Aie, Aie, je ne comprends pas tout...

    Donc concrètement, comment faire pour résoudre ce problème?

    Actuellement j'interface du shell avec du C... Mais la solution n'est pas assez propre à mon gout...

  6. #6
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par WaKaaN Voir le message
    Actuellement j'interface du shell avec du C... Mais la solution n'est pas assez propre à mon gout...
    Quel OS ??

    Sur unixoide, il y a la variable $HOME , ou bien $PWD (répertoire courant).

    Sinon, le mieux est de passer en argument le chemin (utilisé comme par exemple $1 )
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  7. #7
    Membre éclairé
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Points : 709
    Points
    709
    Par défaut salut
    En faite tu peux utiliser la methode suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    char szChemin[MAX_PATH]; // tu récupère le chemin actuel
    getcwd(szChemin,MAX_PATH); // récupérer le chemin de travail
     
    // ajouter les traitements ici
     
    chdir(szChemin); // revenir au chemin précédement recupèré
    sans oublier d'ajouter
    #include <direct.h>
    If you type Google into Google, you Can break the internet" - The IT Crowd

Discussions similaires

  1. comment paramétrer les chemins relatifs?
    Par jam92400 dans le forum kettle/PDI
    Réponses: 0
    Dernier message: 12/12/2011, 09h43
  2. utiliser les chemin relatif de fichier depuis un .jar
    Par wechteuf dans le forum NetBeans
    Réponses: 2
    Dernier message: 27/12/2008, 16h53
  3. JasperReport problème avec les chemins relatif
    Par baradoss dans le forum Jasper
    Réponses: 3
    Dernier message: 15/07/2008, 09h15
  4. notepad et les chemins relatifs
    Par Shugo78 dans le forum Windows
    Réponses: 6
    Dernier message: 02/07/2007, 15h01

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