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 :

Création de répertoire sous Visual 6 ?


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 37
    Par défaut Création de répertoire sous Visual 6 ?
    Bonjour à tous et meilleurs voeux !

    Sous Visual 2005 je crée un ifstream et je vérifie s'il existe avec la méthode fail().
    S'il n'existe pas j'utilise SHCreateDirectoryEx pour créer le répertoire de façon récursive (càd avec son arborescence si elle n'existe pas) :
    Si chemin = "C:\titi\tata\toto"
    SHCreateDirectoryEx se débrouille pour me créer toto dans tata lui-même dans titi à la racine C... si titi n'existait pas avant.

    En revanche je ne trouve pas l'équivalent sous Visual 6... , hormis l'appel à la primitive système mkdir.

    Connaissez-vous une méthode qui permette de le faire ?

    Merci d'avance .

  2. #2
    Membre chevronné Avatar de Jenna
    Inscrit en
    Décembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2009
    Messages : 272
    Par défaut
    Tu l'as bien dit, SHCreateDirectoryEx() se débrouille, il fait plus de choses que tu ne le penses.

    En revanche, pour les primitives mkdir() et son équivalent Win32 CreateDirectory(), c'est à toi de créer la mécanique qui va créer les répertoires intermédiaires s'ils n'existent pas.

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 37
    Par défaut
    Youpi !

    Merci pour ta réponse... C'est bien ce que je craignais.

    Est-ce que quelqu'un a un bout de code déjà prêt et éprouvé qui "crée la mécanique" qui va bien, par hasard ?

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Tu peux utiliser la fonction avec VC6 également, simplement il te faudra la charger "manuellement" depuis la DLL (et vérifier si le système d'exploitation cible la possède, bien sûr !!!). Pour ça, tu copies/colles le header donné dans MSDN, puis tu appelles LoadLibrary / GetProcAddress. N'oublie pas le FreeLibrary en fin de programme.

    Sinon, pour le faire de façon générique via CreateDirectoryEx, tu devras appliquer l'algo suivant :
    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
    // Chemin complet à créer.
    FullPathToCreate <-
    Do
      // Récupérer le premier nom de répertoire, limité par un "\".
      PathToCreate <- GetFirstPath(FullPathToCreate)
      // Retirer l'élément venant d'être créé du chemin complet, inclus un éventuel "\" initial.
      RemoveFirstPath(FullPathToCreate)
      // Créer le répertoire partiel.
      ErrorCode <- CreateDirectoryEx(PathToCreate)
      // L'erreur "Le répertoire existe déjà" n'en est pas une, ici, donc on la supprime.
      if (ErrorCode == ERROR_ALREADY_EXISTS)
        ErrorCode <- NO_ERROR
      end if
    // Et on continue tant qu'il n'y a pas de vraie erreur et qu'il reste des chemins à créer.
    While ((Error == NO_ERROR) AND (Length(FullPathToCreate) != 0))
    Pour découper le chemin en ses divers sous-éléments, tu peux utiliser des fonctions comme strchr, strtok, etc. J'ai fait ça à l'arrache, mais ça devrait marcher correctement.

    Je n'ai pas de code tout prêt sous la main par contre, et le seul que j'ai peut-être dans mes tiroirs serait en Delphi et non pas en C++.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. création de setup sous Visual studio
    Par barbossa dans le forum C#
    Réponses: 4
    Dernier message: 14/09/2011, 17h43
  2. [Répertoire] Création Dossier + 2 sous-dossiers
    Par Strix dans le forum Langage
    Réponses: 2
    Dernier message: 15/01/2007, 12h44
  3. Réponses: 1
    Dernier message: 30/12/2006, 11h14
  4. Création de répertoire sous innosetup
    Par CharleLéo dans le forum Delphi
    Réponses: 4
    Dernier message: 09/11/2006, 22h49
  5. Création de répertoires sous Unix et Windows
    Par xzed dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/05/2006, 16h31

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