Dans la fenêtre exécution
Il semble qu’elles doivent être les mêmes.
Le vieux FileSystemObject.BuildPath() n’a pas fonctionné de cette façon...
Dans la fenêtre exécution
Il semble qu’elles doivent être les mêmes.
Le vieux FileSystemObject.BuildPath() n’a pas fonctionné de cette façon...
C'est le genre de question philosophique (qui peut-être que Microsoft peut vraiment répondre), puisque c'est exactement ce que dit la documentation.
Système.IO.Chemin d'accès.Combiner
"Si path2 contient un chemin d'accès absolu, cette méthode retourne path2."
Je ne sais pas ce que la raison est. Je suppose que la solution est d'enlever (ou ajuster) DirectorySeparatorChar depuis le début de la deuxième chemin; peut-être écrire votre propre méthode de combinaison qui le fait et appelle ensuite le Chemin d'accès.Combiner().
À mon avis c'est un bug. Le problème, c'est qu'il y a deux types différents de "absolue" des chemins. Le chemin d'accès "d:\mydir\myfile.txt" est absolue, le chemin "\mydir\myfile.txt" est également considéré comme "absolue", même si il est absent de la lettre de lecteur. Le comportement correct, à mon avis, serait de la faire précéder de la lettre de lecteur de la première chemin d'accès lors de la deuxième chemin commence avec le séparateur de répertoire (et n'est pas un chemin d'accès UNC). Je recommande d'écrire votre propre helper de fonction wrapper qui a le comportement que vous désirez si vous en avez besoin.
Ne connaissant pas les détails réels, ma conjecture est qu’il fait une tentative pour rejoindre comme vous pourriez rejoindre URI relatifs. Par exemple :
Cela signifie que lorsque vous rejoignez un chemin avec une barre oblique qui précède, vous réellement joignez une base à l’autre, auquel cas la deuxième priorité devient.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.