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 divad . Évalué à 2.
le find peux trouve le ...
tu fais un :
find . -type d|grep qqch/mondir| awk -Fqqcho '{print $1}'
# mkdir -p
Posté par netsurfeur . Évalué à 2.
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 sigmathaar . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.