Fungsi PathCchCanonicalize (pathcch.h)
Mengonversi string jalur menjadi bentuk kanonis.
Fungsi ini berbeda dari PathCchCanonicalizeEx karena Anda dibatasi untuk jalur akhir panjang MAX_PATH.
Fungsi ini berbeda dari PathAllocCanonicalize karena pemanggil harus mendeklarasikan ukuran string yang dikembalikan, yang disimpan pada tumpukan.
Fungsi ini berbeda dari PathCanonicalize karena menerima jalur dengan awalan "\", "\?" dan "\?\UNC".
Sintaks
WINPATHCCHAPI HRESULT PathCchCanonicalize(
[out] PWSTR pszPathOut,
[in] size_t cchPathOut,
[in] PCWSTR pszPathIn
);
Parameter
[out] pszPathOut
Penunjuk ke buffer yang, ketika fungsi ini berhasil kembali, menerima string jalur kanonis.
[in] cchPathOut
Ukuran buffer yang diacu oleh pszPathOut, dalam karakter.
[in] pszPathIn
Penunjuk ke string jalur asli. Jika nilai ini menunjuk ke string kosong, atau menghasilkan string kosong setelah elemen "." dan ".." dihapus, satu garis miring terbalik disalin ke buffer yang diacu oleh pszPathOut.
Menampilkan nilai
Jika fungsi ini berhasil, fungsi akan mengembalikan S_OK. Jika tidak, kode HRESULT akan dikembalikan, termasuk kode berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Nilai cchPathOut lebih besar dari PATHCCH_MAX_CCH. |
|
Segmen jalur melebihi batas panjang segmen jalur standar 256 karakter. |
|
Fungsi tidak dapat mengalokasikan buffer dengan ukuran yang diperlukan. |
Keterangan
Fungsi ini merespons string "." dan ".." yang disematkan di jalur. String ".." menunjukkan untuk menghapus segmen jalur sebelumnya segera. String "." menunjukkan untuk melompati segmen jalur berikutnya. Perhatikan bahwa segmen akar jalur tidak dapat dihapus. Jika ada lebih banyak string ".." daripada segmen jalur, fungsi mengembalikan S_OK dan buffer yang diacu oleh pszPathOut berisi garis miring terbalik tunggal, "\".
Semua titik berikutnya dihapus dari jalur, kecuali jika didahului oleh karakter kartubebas "". Dalam hal ini, satu periode dipertahankan setelah karakter '', tetapi semua titik berikutnya dihapus.
Jika jalur yang dihasilkan adalah drive akar ("x:"), garis miring terbelakang ditambahkan ("x:\").
Fungsi ini tidak mengonversi garis miring ke depan (/) menjadi garis miring kembali (\). Dengan input yang tidak tepercaya, fungsi ini dengan sendirinya, tidak dapat digunakan untuk mengonversi jalur menjadi formulir yang dapat dibandingkan dengan jalur lain untuk sub-jalur atau identitas. Penelepon yang membutuhkan kemampuan tersebut harus mengonversi maju ke garis miring kembali sebelum menggunakan fungsi ini.
Contoh berikut menunjukkan efek string ini.
String asli | String kanonis |
---|---|
C:\name_1\.\name_2\.. \name_3 | C:\name_1\name_3 |
C:\name_1\.. \name_2\.\name_3 | C:\name_2\name_3 |
C:\name_1\name_2\.\name_3\.. \name_4 | C:\name_1\name_2\name_4 |
C:\name_1\.\name_2\.\name_3\.. \name_4\.. | C:\name_1\name_2 |
C:\name_1\*... | C:\name_1\*. |
C:\.. | C:\ |
Persyaratan
Klien minimum yang didukung | Windows 8 [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2012 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | pathcch.h |
Pustaka | Pathcch.lib |