Função PathFindNextComponentA (shlwapi.h)
Analisa um caminho e retorna a parte desse caminho que segue a primeira barra invertida.
Sintaxe
LPCSTR PathFindNextComponentA(
[in] LPCSTR pszPath
);
Parâmetros
[in] pszPath
Tipo: PTSTR
Um ponteiro para uma cadeia de caracteres terminada em nulo que contém o caminho a ser analisado. Essa cadeia de caracteres não deve ter mais de MAX_PATH caracteres, além do caractere nulo de terminação. Os componentes de caminho são delimitados por barras invertidas. Por exemplo, o caminho "c:\path1\path2\file.txt" tem quatro componentes: c:, path1, path2 e file.txt.
Retornar valor
Tipo: PTSTR
Retorna um ponteiro para uma cadeia de caracteres terminada em nulo que contém o caminho truncado.
Se pszPath apontar para o último componente no caminho, essa função retornará um ponteiro para o caractere nulo de terminação.
Se pszPath apontar para o caractere nulo de terminação ou se a chamada falhar, essa função retornará NULL.
Comentários
PathFindNextComponent percorre uma cadeia de caracteres de caminho até encontrar uma barra invertida ("\"), ignora tudo até esse ponto, incluindo a barra invertida, e retorna o restante do caminho. Portanto, se um caminho começar com uma barra invertida (como \path1\path2), a função simplesmente removerá a barra invertida inicial e retornará o restante (path1\path2).
Exemplos
O aplicativo de console simples a seguir passa várias cadeias de caracteres para PathFindNextComponent para demonstrar o que a função reconhece como um componente de caminho e para mostrar o que é retornado. Para executar esse código no Visual Studio, você deve vincular a Shlwapi.lib e definir UNICODE nos comandos de pré-processador nas configurações do projeto.
#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
Observação
O cabeçalho shlwapi.h define PathFindNextComponent como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional, Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | shlwapi.h |
Biblioteca | Shlwapi.lib |
DLL | Shlwapi.dll (versão 4.71 ou posterior) |