PathRelativePathToW-Funktion (shlwapi.h)
Erstellt einen relativen Pfad von einer Datei oder einem Ordner zu einer anderen.
Syntax
BOOL PathRelativePathToW(
[out] LPWSTR pszPath,
[in] LPCWSTR pszFrom,
[in] DWORD dwAttrFrom,
[in] LPCWSTR pszTo,
[in] DWORD dwAttrTo
);
Parameter
[out] pszPath
Typ: LPTSTR
Ein Zeiger auf eine Zeichenfolge, die den relativen Pfad empfängt. Dieser Puffer muss mindestens MAX_PATH Zeichen groß sein.
[in] pszFrom
Typ: LPCTSTR
Ein Zeiger auf eine NULL-endende Zeichenfolge mit maximaler Länge MAX_PATH, die den Pfad enthält, der den Anfang des relativen Pfads definiert.
[in] dwAttrFrom
Art: DWORD
Die Dateiattribute von pszFrom. Wenn dieser Wert FILE_ATTRIBUTE_DIRECTORY enthält, wird pszFrom als Verzeichnis angenommen. Andernfalls wird pszFrom als Datei angenommen.
[in] pszTo
Typ: LPCTSTR
Ein Zeiger auf eine null-endende Zeichenfolge mit maximaler Länge MAX_PATH, die den Pfad enthält, der den Endpunkt des relativen Pfads definiert.
[in] dwAttrTo
Art: DWORD
Die Dateiattribute von pszTo. Wenn dieser Wert FILE_ATTRIBUTE_DIRECTORY enthält, wird pszTo als verzeichnis angenommen. Andernfalls wird pszTo als Datei angenommen.
Rückgabewert
Typ: BOOL
Gibt TRUE zurück, wenn erfolgreich, andernfalls FALSE .
Hinweise
Diese Funktion verwendet ein Paar von Pfaden und generiert einen relativen Pfad von einem zum anderen. Die Pfade müssen nicht voll qualifiziert sein, aber sie müssen ein gemeinsames Präfix aufweisen, andernfalls schlägt die Funktion fehl und gibt FALSE zurück.
Beispiel: Der Ausgangspunkt pszFrom lautet "c:\FolderA\FolderB\FolderC", und der Endpunkt pszTo lautet "c:\FolderA\FolderD\FolderE". PathRelativePathTo gibt den relativen Pfad von pszFrom zu pszTo als "....\FolderD\FolderE" zurück. Sie erhalten das gleiche Ergebnis, wenn Sie pszFrom auf "\FolderA\FolderB\FolderC" und pszTo auf "\FolderA\FolderD\FolderE" festlegen. Auf der anderen Seite verwenden "c:\FolderA\FolderB" und "a:\FolderA\FolderD" kein gemeinsames Präfix, und die Funktion schlägt fehl. Beachten Sie, dass "\" nicht als Präfix gilt und ignoriert wird. Wenn Sie pszFrom auf "\FolderA\FolderB" und pszTo auf "\FolderC\FolderD" festlegen, schlägt die Funktion fehl.
Beispiele
#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
Hinweis
Der shlwapi.h-Header definiert PathRelativePathTo als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional, Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | shlwapi.h |
Bibliothek | Shlwapi.lib |
DLL | Shlwapi.dll (Version 4.71 oder höher) |