Crée un chemin relatif à partir d'un fichier ou d'un dossier vers un autre
#include <WinAPIShPath.au3>
_WinAPI_PathRelativePathTo ( $sPathFrom, $bDirFrom, $sPathTo, $bDirTo )
$sPathFrom | Le chemin d'accès au fichier ou un répertoire qui définit le départ du chemin relatif. |
$bDirFrom | Indique si le chemin $sPathFrom est un répertoire, les valeurs possibles sont: True - Répertoire. False - Fichier. |
$sPathTo | Le chemin d'accès au fichier ou au répertoire qui définit l'extrémité du chemin d'accès relatif. |
$bDirTo | Indique si le chemin $fDirTo est un répertoire, les valeurs possibles sont: True - Répertoire. False - Fichier. |
Succès: | Retourne le chemin relatif. |
Échec: | Retourne la chaîne vide. |
Cette fonction prend une paire de chemins et génère un chemin relatif de l'un vers l'autre. Les chemins ne sont pas nécessairement pleinement qualifié, mais ils doivent avoir un préfixe commun, sinon, la fonction échoue.
Par exemple, soit le point de départ, $sPathFrom, "C:\A\B\C", et le point d'arrivée, $sPathTo, "C:\A\D".
LA fonction _WinAPI_PathRelativePathTo() retournera le chemin relatif de $sPathFrom à $sPathTo: "..\..\D\E". Vous obtiendez le même résultat si vous définissez $sPathFrom à "\A\B\C" et $sPathTo à "\A\D\E". D'autre part, "C:\A\B\C" et "D:\A\D" ne partagent pas un préfixe commun, et la fonction échouera. Notez que "\" n'est pas considéré comme un préfixe et est ignoré. Si vous définissez $sPathFrom à "\\A\B\C", et $sPathTo à "\\C\D", la fonction échouera.
Consultez PathRelativePathTo dans la librairie MSDN.
#include <WinAPIShPath.au3> Local $sPath = _WinAPI_PathRelativePathTo(@ScriptDir, 1, @MyDocumentsDir, 1) ConsoleWrite('Chemin relatif: ' & $sPath & @CRLF) If $sPath Then ShellExecute($sPath) EndIf