J'essaie d'obtenir tous les répertoires dans un chemin. Par exemple, de a/b/c/d.e
je voudrais obtenir a
, a/b
, et a/b/c
. Je peux y parvenir en appelant des fonctions comme posix dirname
plusieurs fois. Le problème est avec des chemins comme a/b/c/
. Je voudrais obtenir a
, a/b
, et a/b/c
. Puisqu'il y a un /
suivant c
, c
devrait être un répertoire que je voudrais lister. Mais des fonctions comme dirname
renvoient a/b
au lieu de a/b/c
lorsqu'elles sont données a/b/c/
en entrée. Puis-je simplement diviser /
pour obtenir la liste des répertoires ou y a-t-il un cas limite où cela ne fonctionnerait pas?Est-il prudent de diviser un chemin sur '/' pour l'analyser?
0
A
Répondre
1
Les seuls cas particuliers que je connais sont
- avec le nom de fichier à la fin
- avec un
/
à la fin - avec un nom de dossier appelé
a.e
(peut ou peut-être pas à la fin) - lien symbolique
- chemin Windows (qui utilise
\
mais je pense qu'il n'applique pas dans votre cas) - Erreur de saisie de l'utilisateur, mettre plusieurs
/
. par exemple./tmp//something
qui est pris en charge dans certains programmes
Si votre fonction prend en charge tous les cas ci-dessus, je pense que c'est bien.