Funzione PathRelativePathToW (shlwapi.h)
Crea un percorso relativo da un file o una cartella a un altro.
Sintassi
BOOL PathRelativePathToW(
[out] LPWSTR pszPath,
[in] LPCWSTR pszFrom,
[in] DWORD dwAttrFrom,
[in] LPCWSTR pszTo,
[in] DWORD dwAttrTo
);
Parametri
[out] pszPath
Tipo: LPTSTR
Puntatore a una stringa che riceve il percorso relativo. Questo buffer deve avere dimensioni di almeno MAX_PATH caratteri.
[in] pszFrom
Tipo: LPCTSTR
Puntatore a una stringa con terminazione Null di lunghezza massima MAX_PATH contenente il percorso che definisce l'inizio del percorso relativo.
[in] dwAttrFrom
Tipo: DWORD
Attributi di file di pszFrom. Se questo valore contiene FILE_ATTRIBUTE_DIRECTORY, si presuppone che pszFrom sia una directory; in caso contrario, si presuppone che pszFrom sia un file.
[in] pszTo
Tipo: LPCTSTR
Puntatore a una stringa con terminazione Null di lunghezza massima MAX_PATH contenente il percorso che definisce l'endpoint del percorso relativo.
[in] dwAttrTo
Tipo: DWORD
Attributi di file di pszTo. Se questo valore contiene FILE_ATTRIBUTE_DIRECTORY, si presuppone che pszTo sia directory; in caso contrario, si presuppone che pszTo sia un file.
Valore restituito
Tipo: bool
Restituisce TRUE in caso di esito positivo oppure FALSE in caso contrario.
Osservazioni
Questa funzione accetta una coppia di percorsi e genera un percorso relativo da uno all'altro. I percorsi non devono essere completi, ma devono avere un prefisso comune oppure la funzione avrà esito negativo e restituirà FALSE.
Ad esempio, lasciare che il punto iniziale, pszFrom, essere "c:\FolderA\FolderB\FolderC" e il punto finale, pszTo, essere "c:\FolderA\FolderD\FolderD\FolderE". PathRelativePathTo restituirà il percorso relativo da pszFrom a pszTo come: "....\FolderD\FolderE". Se si imposta pszFrom su "\FolderA\FolderB\FolderC" e pszTo su "\FolderA\FolderD\FolderD\FolderE". D'altra parte, "c:\FolderA\FolderB" e "a:\FolderA\FolderD non condividono un prefisso comune e la funzione avrà esito negativo. Si noti che "\" non è considerato un prefisso e viene ignorato. Se si imposta pszFrom su "\FolderA\FolderB" e pszTo su "\FolderC\FolderD", la funzione avrà esito negativo.
Esempi
#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
Nota
L'intestazione shlwapi.h definisce PathRelativePathTo come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional, Windows XP [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
shlwapi.h |
libreria |
Shlwapi.lib |
dll | Shlwapi.dll (versione 4.71 o successiva) |