共用方式為


PathFindNextComponentW 函式 (shlwapi.h)

剖析路徑,並傳回該路徑後面第一個反斜杠的部分。

語法

LPCWSTR PathFindNextComponentW(
  [in] LPCWSTR pszPath
);

參數

[in] pszPath

類型:PTSTR

包含剖析路徑之 Null 終止字串的指標。 此字串不能超過MAX_PATH個字元,加上終止的 Null 字元。 路徑元件會以反斜杠分隔。 例如,路徑 「c:\path1\path2\file.txt」 有四個元件:c:、path1、path2 和 file.txt。

傳回值

類型:PTSTR

傳回包含截斷路徑之 Null 終止字串的指標。

如果 pszPath 指向路徑中的最後一個元件,則此函式會傳回終止 Null 字元的指標。

如果 pszPath 指向終止的 Null 字元,或呼叫失敗,則此函式會傳回 NULL

言論

PathFindNextComponent 會逐步執行路徑字串,直到遇到反斜杠(“\”),會忽略所有到該點的所有專案,包括反斜杠,並傳回路徑的其餘部分。 因此,如果路徑以反斜杠開頭(例如 \path1\path2),函式只會移除初始反斜杠並傳回其餘部分 (path1\path2)。

例子

下列簡單的控制台應用程式會將各種字串傳遞至 PathFindNextComponent,以示範函式辨識為路徑元件的內容,以及顯示傳回的內容。 若要在 Visual Studio 中執行此程式代碼,您必須連結至 Shlwapi.lib,並在專案設定的預處理器命令中定義 UNICODE。


#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

注意

shlwapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 PathFindNextComponent 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional、Windows XP [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 shlwapi.h
連結庫 Shlwapi.lib
DLL Shlwapi.dll (4.71 版或更新版本)