PathRelativePathToA, fonction (shlwapi.h)
Crée un chemin relatif d’un fichier ou d’un dossier vers un autre.
Syntaxe
BOOL PathRelativePathToA(
[out] LPSTR pszPath,
[in] LPCSTR pszFrom,
[in] DWORD dwAttrFrom,
[in] LPCSTR pszTo,
[in] DWORD dwAttrTo
);
Paramètres
[out] pszPath
Type : LPTSTR
Pointeur vers une chaîne qui reçoit le chemin d’accès relatif. Cette mémoire tampon doit être au moins MAX_PATH caractères de taille.
[in] pszFrom
Type : LPCTSTR
Pointeur vers une chaîne terminée par null de longueur maximale MAX_PATH qui contient le chemin qui définit le début du chemin d’accès relatif.
[in] dwAttrFrom
Type : DWORD
Attributs de fichier de pszFrom. Si cette valeur contient FILE_ATTRIBUTE_DIRECTORY, pszFrom est supposé être un répertoire ; sinon, pszFrom est supposé être un fichier.
[in] pszTo
Type : LPCTSTR
Pointeur vers une chaîne terminée par null de longueur maximale MAX_PATH qui contient le chemin d’accès qui définit le point de terminaison du chemin relatif.
[in] dwAttrTo
Type : DWORD
Attributs de fichier de pszTo. Si cette valeur contient FILE_ATTRIBUTE_DIRECTORY, pszTo est supposé être un répertoire ; sinon, pszTo est supposé être un fichier.
Valeur de retour
Type : BOOL
Retourne TRUE en cas de réussite ou FALSE sinon.
Remarques
Cette fonction prend une paire de chemins et génère un chemin relatif d’un à l’autre. Les chemins d’accès ne doivent pas être qualifiés complets, mais ils doivent avoir un préfixe commun, ou la fonction échoue et retourne FALSE.
Par exemple, laissez le point de départ, pszFrom, être « c :\FolderA\FolderB\FolderC » et le point de terminaison, pszTo, être « c :\FolderA\FolderD\FolderE ». PathRelativePathTo renvoie le chemin relatif de pszFrom à pszTo en tant que : « ...\FolderD\FolderE ». Vous obtiendrez le même résultat si vous définissez pszFrom sur « \FolderA\FolderB\FolderC » et pszTo sur « \FolderA\FolderD\FolderE ». En revanche, « c :\FolderA\FolderB » et « a :\FolderA\FolderD ne partagent pas de préfixe commun et la fonction échoue. Notez que « \ » n’est pas considéré comme un préfixe et est ignoré. Si vous définissez pszFrom sur « \FolderA\FolderB » et pszTo sur « \FolderC\FolderD », la fonction échoue.
Exemples
#include <windows.h>
#include <iostream.h>
#include "Shlwapi.h"
void main(void)
{
char szOut[MAX_PATH] = "";
char szFrom[ ] = "c:\\a\\b\\path";
char szTo[ ] = "c:\\a\\x\\y\\file";
cout << "The relative path is relative from: ";
cout << szFrom;
cout << "\n";
cout << "The relative path is relative to: ";
cout << szTo;
cout << "\n";
PathRelativePathTo(szOut,
szFrom,
FILE_ATTRIBUTE_DIRECTORY,
szTo,
FILE_ATTRIBUTE_NORMAL);
cout << "The relative path is: ";
cout << szOut;
cout << "\n";
}
OUTPUT:
==================
The relative path is relative from: c:\a\b\path
The relative path is relative to: c:\a\x\y\file
The relative path is: ..\..\x\y\file
Note
L’en-tête shlwapi.h définit PathRelativePathTo comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel, Windows XP [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | shlwapi.h |
bibliothèque | Shlwapi.lib |
DLL | Shlwapi.dll (version 4.71 ou ultérieure) |