Bagikan melalui


Fungsi PathFindNextComponentA (shlwapi.h)

Mengurai jalur dan mengembalikan bagian dari jalur tersebut yang mengikuti garis miring terbelakang pertama.

Sintaks

LPCSTR PathFindNextComponentA(
  [in] LPCSTR pszPath
);

Parameter

[in] pszPath

Jenis: PTSTR

Penunjuk ke string yang dihentikan null yang berisi jalur untuk diurai. String ini tidak boleh lebih panjang dari MAX_PATH karakter, ditambah karakter null yang mengakhiri. Komponen jalur dibatasi oleh garis miring terbelakang. Misalnya, jalur "c:\path1\path2\file.txt" memiliki empat komponen: c:, path1, path2, dan file.txt.

Nilai kembali

Jenis: PTSTR

Mengembalikan penunjuk ke string yang dihentikan null yang berisi jalur terpotok.

Jika pszPath menunjuk ke komponen terakhir di jalur, fungsi ini mengembalikan penunjuk ke karakter null yang mengakhiri.

Jika pszPath menunjuk ke karakter null yang mengakhiri atau jika panggilan gagal, fungsi ini mengembalikan NULL.

Keterangan

PathFindNextComponent menjalankan string jalur hingga menemukan garis miring terbalik ("\"), mengabaikan semuanya hingga titik itu termasuk garis miring terbalik, dan mengembalikan sisa jalur. Oleh karena itu, jika jalur dimulai dengan garis miring terbalik (seperti \path1\path2), fungsi hanya menghapus garis miring terbalik awal dan mengembalikan sisanya (path1\path2).

Contoh

Aplikasi konsol sederhana berikut meneruskan berbagai string ke PathFindNextComponent untuk menunjukkan apa yang dikenali fungsi sebagai komponen jalur dan untuk menunjukkan apa yang dikembalikan. Untuk menjalankan kode ini di Visual Studio, Anda harus menautkan ke Shlwapi.lib dan menentukan UNICODE dalam perintah preprocessor di pengaturan proyek.


#include <windows.h>
#include <iostream>
#include <shlwapi.h>

#pragma comment(lib, "shlwapi.lib")     // Link to this file.

int main()
{
    using namespace std;
   
    PCWSTR path = L"c:\\path1\\path2\\file.txt";
 
    // This loop passes a full path to PathFindNextComponent and feeds the 
    // results of that call back into the function until the entire path has
    // been walked.
    while (path)
    {
        PCWSTR oldPath = path;
        path = PathFindNextComponent(path);
 
        // The path variable pointed to the terminating null character.
        if (path == NULL)
        {
            wcout << L"The terminating null character returns NULL\n\n";
        }
        // The path variable pointed to a path with only one component.
		else if (*path == 0)
        {
            wcout << L"The path " << oldPath 
                  << L" returns a pointer to the terminating null character\n"; 
        }
        else 
        {
            wcout << L"The path " << oldPath << L" returns " << path << L"\n";
        }
    }
 
    // These calls demonstrate the results of different path forms.
    // Note that where those paths begin with backslashes, those
    // backslashes are merely stripped away and the entire path is returned.

    PCWSTR path1 = L"\\path1";

    wcout << L"The path " << path1 << L" returns " 
          << PathFindNextComponent(path1);
        
    PCWSTR path2 = L"\\path1\\path2";

    wcout << L"\nThe path " << path2 << L" returns "
          << PathFindNextComponent(path2);
        
    PCWSTR path3 = L"path1\\path2";
 
    wcout << L"\nThe path " << path3 << L" returns "
          << PathFindNextComponent(path3);
 
    wcout << L"\nThe path " << L"c:\\file.txt" << L" returns "
          << PathFindNextComponent(L"c:\\file.txt");
 
    return 0;
}

OUTPUT:
===========
The path c:\path1\path2\file.txt returns path1\path2\file.txt
The path path1\path2\file.txt returns path2\file.txt
The path path2\file.txt returns file.txt
The path file.txt returns a pointer to the terminating null character
The terminating null character returns NULL

The path \path1 returns path1
The path \path1\path2 returns path1\path2
The path path1\path2 returns path2
The path c:\file.txt returns file.txt

Catatan

Header shlwapi.h mendefinisikan PathFindNextComponent sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor 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)