re bonjour
J'ai une variable nommée PAth qui arrive dans une fonction sous forme de paramètre.
Dans la fonction je fais:
J'affiche Pth et là je vois : '\Microsoft\Windows\Start Menu\Programs'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var Pth, S: string; begin Pth := TPath.Combine(Path, '\Microsoft\Windows\Start Menu\Programs');
Mon chemin d'entrée a disparu.
Pour vérifier je rajoute une ligne juste après:
Et là, surprise, 'C:\Users\moi\AppData\Roaming\Microsoft\Windows\Start Menu\Programs'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var Pth, S: string; begin Pth := TPath.Combine(Path, '\Microsoft\Windows\Start Menu\Programs'); Pth := Path + '\Microsoft\Windows\Start Menu\Programs';
Le TPath.Combine est pourtant censé faire le même travail.
Comme c'est la première fois que ça m'arrive, j'aimerais savoir si l'un de vous a déjà eu le même genre de problème ?
Est-ce qu'il pourrait y avoir des chemins spécifiques qui seraient la cause de ce bug ?
En fait, c'est
qui ne passe pas dans System.IOUtils.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 // if Path2 is absolute, return it; if not, combine the paths if IsPathRooted(Path2) or IsExtendedPrefixed(Path2) then
et plus précisément, c'est IsPathRooted qui renvoie True
Bon, fallait de \ dans le second chemin. Étrange, je suis sûr d'avoir déjà utilisé des chemins comme ça sans avoir de problème. Ou alors, j'ai rêvé.
Partager