Bagikan melalui


Fungsi PathRelativePathToA (shlwapi.h)

Membuat jalur relatif dari satu file atau folder ke file atau folder lainnya.

Sintaks

BOOL PathRelativePathToA(
  [out] LPSTR  pszPath,
  [in]  LPCSTR pszFrom,
  [in]  DWORD  dwAttrFrom,
  [in]  LPCSTR pszTo,
  [in]  DWORD  dwAttrTo
);

Parameter

[out] pszPath

Jenis: LPTSTR

Penunjuk ke string yang menerima jalur relatif. Buffer ini harus berukuran setidaknya MAX_PATH karakter.

[in] pszFrom

Jenis: LPCTSTR

Penunjuk ke string panjang maksimum yang dihentikan null MAX_PATH yang berisi jalur yang menentukan awal jalur relatif.

[in] dwAttrFrom

Jenis: DWORD

Atribut file pszFrom. Jika nilai ini berisi FILE_ATTRIBUTE_DIRECTORY, pszFrom diasumsikan sebagai direktori; jika tidak, pszFrom diasumsikan sebagai file.

[in] pszTo

Jenis: LPCTSTR

Penunjuk ke string panjang maksimum yang dihentikan null MAX_PATH yang berisi jalur yang menentukan titik akhir jalur relatif.

[in] dwAttrTo

Jenis: DWORD

Atribut file pszTo. Jika nilai ini berisi FILE_ATTRIBUTE_DIRECTORY, pszTo diasumsikan sebagai direktori; jika tidak, pszTo diasumsikan sebagai file.

Nilai kembali

Jenis: BOOL

Mengembalikan TRUE jika berhasil, atau FALSE sebaliknya.

Keterangan

Fungsi ini mengambil sepasang jalur dan menghasilkan jalur relatif dari satu ke jalur lainnya. Jalur tidak harus sepenuhnya memenuhi syarat, tetapi harus memiliki awalan umum, atau fungsi akan gagal dan mengembalikan FALSE.

Misalnya, biarkan titik awal, pszFrom, menjadi "c:\FolderA\FolderB\FolderC", dan titik akhir, pszTo, menjadi "c:\FolderA\FolderD\FolderE". PathRelativePathTo akan mengembalikan jalur relatif dari pszFrom ke pszTo sebagai: "....\FolderD\FolderE". Anda akan mendapatkan hasil yang sama jika Anda mengatur pszFrom ke "\FolderA\FolderB\FolderC" dan pszTo ke "\FolderA\FolderD\FolderE". Di sisi lain, "c:\FolderA\FolderB" dan "a:\FolderA\FolderD tidak berbagi awalan umum, dan fungsi akan gagal. Perhatikan bahwa "\" tidak dianggap sebagai awalan dan diabaikan. Jika Anda mengatur pszFrom ke "\FolderA\FolderB", dan pszTo ke "\FolderC\FolderD", fungsi akan gagal.

Contoh

#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

Catatan

Header shlwapi.h mendefinisikan PathRelativePathTo sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosektor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional, Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header shlwapi.h
Pustaka Shlwapi.lib
DLL Shlwapi.dll (versi 4.71 atau yang lebih baru)