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

MFC Discussion :

[MFC] création d'un nouveau fichier sous vc++


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut [MFC] création d'un nouveau fichier sous vc++
    Bonjour,

    Quelle est la fonction qui permet de crée un dossier qui doit contenir différent fichier qui sont crée ultérieurement?

    Je n'ai rien trouvé pour l'instant, si une âme charitable veut bien éclairer ma lanterne..

    merci

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Pour créer un repertoire, CreateDirectory

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    merci pour ton aide, par contre, j'ai regarder dans les tuto pour voir comment on test si un dossier existe mais la fonction qui est donné (opendir()) n'est pas reconnu en c++, je crois que c'est du PHP. Comment je peut faire alors pour tester si mon dossier existe?

    merci

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (GetFileAttributes(path) & FILE_ATTRIBUTE_DIRECTORY)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    voila ce que j'ai fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    if (!(GetFileAttributes(chemin) & FILE_ATTRIBUTE_DIRECTORY))
    	{
    		CreateDirectory(chemin,NULL);
    	}
    mais le compilateur ne rentre jamais dans la boucle condition, que le dossier existe ou pas...

    j'ai essayé plusieurs solutions mais rien n'y fais, et même avec l'aide je ne comprend pas comment utiliser cette fontion de test!

    Pourrais-tu me faire une brève explication de ce que je doit faire?

    merci beaucoup.

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Citation Envoyé par Rafoo
    voila ce que j'ai fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    if (!(GetFileAttributes(chemin) & FILE_ATTRIBUTE_DIRECTORY))
    	{
    		CreateDirectory(chemin,NULL);
    	}
    mais le compilateur ne rentre jamais dans la boucle condition, que le dossier existe ou pas...

    j'ai essayé plusieurs solutions mais rien n'y fais, et même avec l'aide je ne comprend pas comment utiliser cette fontion de test!

    Pourrais-tu me faire une brève explication de ce que je doit faire?

    merci beaucoup.
    Que vaut "chemin" ?
    GetFileAttributes(chemin) & FILE_ATTRIBUTE_DIRECTORY) teste le chemin et si c'est un répertoire, il rentre dans la condition.

    Donc, ton programme est bon. Si le répertoire n'existe pas, alors je le créé.

    Par contre, il doit forcément rentrer dedans, si le répertoire n'existe pas. C'est pour ca qu'il faudrait connaitre la valeur de chemin. (n'as-tu pas oublier de doubler les \)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    ma variable chemin vaut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chemin ="C:\\Documents and Settings\\rdigiusto.VARIOPTIC\\Bureau\\test\\"+lot;
    lot détient le nom du répertoir à crée s'il n'existe pas...

    Sans le '!' il ne rentre jamais dans la condition et avec le '!' il y rentre a chaque fois!!

    moi pas comprendre quoi pas marcher...?!?

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    chemin est un char * ? string ? CString ?

    si tu rentres dans la boucle en enlevant le ! c'est que le répertoire existe

    tu as essayé de tracer en debug ?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    ma variable chemin est un CString.

    Et j'ai en fait tester mon programme dans les deux cas suivant:

    - Avec le dossier existant
    - Sans le dossier.

    mais sans le '!', en traçant avec le debugger, le compilateur ne rentre pas dans la boucle.

    avec le '!', le compilateur rentre à chaque fois dans la boucle, que le dossier existe ou pas...

    bizzard, non?

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    je te propose de faire un test simple

    en admettant que ton windows soit installé sur c:\winnt

    Code : 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
    if (GetFileAttributes("c:\\winnt") & FILE_ATTRIBUTE_DIRECTORY)
    {
        MessageBox(NULL, "C:\\winnt existe", "", 0);
    }
    else
    {
        MessageBox(NULL, "C:\\winnt n'existe pas", "", 0);
    }
     
    if (GetFileAttributes("c:\\winnt2") & FILE_ATTRIBUTE_DIRECTORY)
    {
        MessageBox(NULL, "C:\\winnt2 existe", "", 0);
    }
    else
    {
        MessageBox(NULL, "C:\\winnt2 n'existe pas", "", 0);
    }
    le but étant de voir que winnt existe, et pas winnt2

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    J'ai essayé ton test et j'ai les deux message... winnt existe et winnt2 existe!!

    Je ne comprend pas pourquoi, c'est trop bizzard......

  12. #12
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    je t'avouerai que je sais pas trop là.

    Je te propose alors d'utiliser une autre solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	WIN32_FILE_ATTRIBUTE_DATA attr;
    	if (GetFileAttributesEx("c:\\winnt", GetFileExInfoStandard, &attr))
    		if (attr.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    			MessageBox(NULL, "C:\\winnt existe", "", 0);
    		else
    			MessageBox(NULL, "C:\\winnt n'est pas un repertoire", "", 0);
    	else
    		MessageBox(NULL, "C:\\winnt n'existe pas", "", 0);

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    Alors maintenant, il me dit que 'winnt n'existe pas'!!!

    c'est la 4ème dimension!!!

  14. #14
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    euh ... il existe bien ?

    que renvoit GetLastError() ?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    je viens de modifier ton code pour l'adapter au mien, et cette nouvelle version marche très bien... Alors pourquoi il n'a pas trouvé winnt je ne sais pas (j'ai fais une recherche sur le c: et j'ai pas trouvé de winnt!!!), mais l'important c'est que ça marche dans mon code...

    merci beaucoup pour ton aide.

  16. #16
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    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 393
    Par défaut
    Il n'a pas trouvé C:\WinNT car chez toi, Windows n'est pas installé dans ce dossier... (Il est probablement installé dans C:\Windows)
    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.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    hé voui!!!

    donc tout va bien dans le meilleur des mondes!!!

    merci à toutes les personnes qui trouve du temps pour répondre aux questions aussi farfelu que les miennes.

    et merci nico-pyright(c), tu m'a tiré une grosse épine du pied.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/05/2011, 21h57
  2. Modèle WPF introuvable lors de création d'un nouveau projet sous VS2008
    Par Chakalaka dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 07/02/2010, 17h49
  3. Création d'un nouveau Header sous JSP
    Par zaoueche dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 11/01/2010, 15h56
  4. Compacter une BD = création d'un nouveau fichier
    Par mimir123 dans le forum Modélisation
    Réponses: 2
    Dernier message: 16/05/2008, 20h32
  5. [DOM] probléme de création d'un nouveau fichier XML
    Par nonna dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 29/04/2008, 10h48

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