Forum Programmation.c++ Problème de création de directoires

Posté par  .
Étiquettes : aucune
0
5
déc.
2005
Bonjour je suis en train de programmer un parser XML en C++. Le parser permet de créer une liste arborescente de répertoires à partir d'un fichier XML particulier.

Le fichier XML en question est ordonnée de façon alphabétique non hierarchique, et en fin de comptes il permet d'obtenir une arborescence du style :

Monde\Continent\Pays\Région\Ville

Mon problème : il faut créer environ 5000 dossiers et il n'est donc pas question que je stocke les chemins de chaque dossier. De plus le niveau de profondeur n'est jamais fixe et varié de continent à continent et de pays en pays, je me retrouve à tous le coups avec un chemin du genre :

racine/.../qqch/mondir

Le "..." m'étant inconnu je ne peux donc pas utiliser la fonction POSIX mkdir. A ma connaissance la méthode Find ne me permet pas de trouver un dossier à partir d'un chemin incomplet et si je modifie l'algorithme ça me fait faire des boucles dans tous les sens.

Quelqu'un a-t-il une idée de comment je pourrais trouver le chemin exact du dossier à créer (en gros le contenu des "...")?
  • # Probleme de directoires?

    Posté par  . Évalué à 2.

    un nouvelle contraction en repertoire et sa traduction en anglais?
    le find peux trouve le ...
    tu fais un :
    find . -type d|grep qqch/mondir| awk -Fqqcho '{print $1}'
  • # mkdir -p

    Posté par  . Évalué à 2.

    La commande mkdir a une option -p qui permet de créer les répertoires intermédiaires si nécessaire.
    Tu as donc 2 solutions:
    1. méthode "bourrin"
    Tu remplaces l'appel de la fonction mkdir par un appel de system("mkdir ...").
    C'est lourd mais simple et ça marche.

    2. Tu récupères le source de la commande mkdir (ça sert aussi à ça l'open source) et tu t'en inspire pour intégrer la fonctionnalité équivalente à l'option -p à ton programme.
  • # Merci

    Posté par  . Évalué à 1.

    Merci pour votre aide, j'ai trouvé une façon plus intéressante de faire ce que je voulais en utilisant une fonction récursive, bien que plus compliqué en termes de réalisation elle sera plus facilement réutilisable pour des modifications et/ou développements futurs.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.