Bagikan melalui


Fungsi PathCchAppendEx (pathcch.h)

Menambahkan satu jalur ke ujung jalur lainnya.

Fungsi ini berbeda dari PathCchAppend karena memungkinkan jalur akhir yang lebih lama untuk dibangun.

Fungsi ini berbeda dari PathAppend karena menerima jalur dengan awalan "\", "\?" dan "\?\UNC".

Catatan Fungsi ini, atau PathCchAppend, harus digunakan sebagai pengganti PathAppend untuk mencegah kemungkinan buffer diserbu.

Sintaks

WINPATHCCHAPI HRESULT PathCchAppendEx(
  [in, out]      PWSTR  pszPath,
  [in]           size_t cchPath,
  [in, optional] PCWSTR pszMore,
  [in]           ULONG  dwFlags
);

Parameter

[in, out] pszPath

Penunjuk ke buffer yang, pada entri, berisi jalur asli. Ketika fungsi ini berhasil dikembalikan, buffer berisi jalur asli ditambah jalur yang ditambahkan.

[in] cchPath

Ukuran buffer yang diacu oleh pszPath, dalam karakter.

[in, optional] pszMore

Penunjuk jalur untuk ditambahkan ke akhir jalur yang ditujukan oleh pszPath. Jalur dan jalur UNC yang dimulai dengan urutan \?\ diterima dan dikenali sebagai jalur yang sepenuhnya memenuhi syarat. Jalur ini menggantikan string yang ditujukkan oleh pszPath alih-alih ditambahkan ke string tersebut.

[in] dwFlags

Satu atau beberapa bendera berikut:

Nilai Makna
PATHCCH_NONE
0x0000000
Jangan izinkan pembangunan jalur \\?\ (yaitu, jalur panjang) lebih panjang dari MAX_PATH.
PATHCCH_ALLOW_LONG_PATHS
0x00000001
Izinkan pembangunan jalur \\?\ lebih panjang dari MAX_PATH.
PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS
0x00000002
Memaksa API untuk memperlakukan pemanggil selama jalur panjang diaktifkan, terlepas dari status nama panjang proses yang diaktifkan. Opsi ini hanya dapat digunakan ketika PATHCCH_ALLOW_LONG_PATHS ditentukan, dan tidak dapat digunakan dengan PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS.

Catatan Nilai ini tersedia mulai dari Windows 10 versi 1703.

PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS
0x00000004
Memaksa API untuk memperlakukan pemanggil selama jalur panjang dinonaktifkan, terlepas dari status yang diaktifkan nama panjang proses. Opsi ini hanya dapat digunakan ketika PATHCCH_ALLOW_LONG_PATHS ditentukan, dan tidak dapat digunakan dengan PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS.

Catatan Nilai ini tersedia mulai dari Windows 10 versi 1703.

PATHCCH_DO_NOT_NORMALIZE_SEGMENTS
0x00000008
Menonaktifkan normalisasi segmen jalur yang mencakup penghapusan titik dan spasi berikutnya. Ini memungkinkan akses ke jalur yang akan diblokir oleh normalisasi jalur win32.

Catatan Nilai ini tersedia mulai dari Windows 10 versi 1703.

PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH
0x00000010
Mengonversi jalur input ke dalam formulir jalur perangkat DOS panjang yang diperluas (dengan awalan \\?\) jika belum dalam formulir tersebut. Ini memungkinkan akses ke jalur yang sebaliknya tidak dapat diatasi karena aturan normalisasi Win32 (yang dapat menghapus titik dan spasi berikutnya) dan batasan panjang jalur. Opsi ini menyiratkan perilaku PATHCCH_DO_NOT_NORMALIZE_SEGMENTS yang sama.

Catatan Nilai ini tersedia mulai dari Windows 10 versi 1703.

Nilai kembali

Jika fungsi ini berhasil, fungsi akan mengembalikan S_OK. Jika tidak, kode HRESULT akan dikembalikan, termasuk yang berikut ini.

Menampilkan kode Deskripsi
E_INVALIDARG
Baik pszPath atau pszMore adalah NULL, cchPath adalah 0, atau cchPath lebih besar dari PATHCCH_MAX_CCH.
PATHCCH_E_FILENAME_TOO_LONG
String yang dihasilkan akan melebihi PATHCCH_MAX_CCH.
E_OUTOFMEMORY
Fungsi tidak dapat mengalokasikan buffer dengan ukuran yang diperlukan.

Keterangan

Fungsi ini menyisipkan garis miring terbelakang di antara dua string, jika belum ada.

Persyaratan

Persyaratan Nilai
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

Lihat juga

PathCchAppend