Função PathCchCanonicalizeEx (pathcch.h)
Simplifica um caminho removendo elementos de navegação como "." e "." para produzir um caminho direto e bem formado.
Essa função difere de PathCchCanonicalize , pois permite que um caminho final mais longo seja construído.
Essa função difere de PathAllocCanonicalize porque o chamador deve declarar o tamanho da cadeia de caracteres retornada, que é armazenada na pilha.
Essa função difere de PathCanonicalize , pois aceita caminhos com prefixos "\", "\?" e "\?\UNC".
Sintaxe
WINPATHCCHAPI HRESULT PathCchCanonicalizeEx(
[out] PWSTR pszPathOut,
[in] size_t cchPathOut,
[in] PCWSTR pszPathIn,
[in] ULONG dwFlags
);
Parâmetros
[out] pszPathOut
Um ponteiro para um buffer que, quando essa função retorna com êxito, recebe a cadeia de caracteres de caminho editada.
[in] cchPathOut
O tamanho do buffer apontado por pszPathOut, em caracteres.
[in] pszPathIn
Um ponteiro para a cadeia de caracteres de caminho original. Se esse valor for NULL, apontará para uma cadeia de caracteres vazia ou resultará em uma cadeia de caracteres vazia depois que os elementos "." e ".." forem removidos, uma única barra invertida será copiada para o buffer apontado por pszPathOut.
[in] dwFlags
Um ou mais dos seguintes sinalizadores:
Retornar valor
Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código HRESULT , incluindo, mas não se limitando ao seguinte.
Código de retorno | Descrição |
---|---|
|
O valor cchPathOut é maior que PATHCCH_MAX_CCH. |
|
Um segmento de caminho tem mais de PATHCCH_MAX_CCH caracteres ou, se o sinalizador PATHCCH_ALLOW_LONG_PATHS não estiver definido, excederá o limite de comprimento do segmento de caminho padrão de 256 caracteres. |
|
A função não pôde alocar um buffer do tamanho necessário. |
Comentários
Essa função responde às cadeias de caracteres "." e "." inseridas em um caminho. A cadeia de caracteres ".." indica para remover o segmento de caminho imediatamente anterior. A cadeia de caracteres "." indica ignorar o próximo segmento de caminho. Observe que o segmento raiz do caminho não pode ser removido. Se houver mais cadeias de caracteres ".." do que segmentos de caminho, a função retornará S_OK e o buffer apontado por pszPathOut conterá uma única barra invertida, "\".
Todos os períodos à direita são removidos do caminho, exceto quando precedidos pelo caractere de cartão selvagem "". Nesse caso, um único período é mantido após o caractere '', mas todos os outros períodos à direita são removidos.
Se o caminho resultante for uma unidade raiz ("x:"), uma barra invertida será acrescentada ("x:\").
Essa função não converte barras (/) em barras traseiras (\). Com a entrada não confiável, essa função por si só não pode ser usada para converter caminhos em um formulário que pode ser comparado com outros caminhos para sub-caminho ou identidade. Os chamadores que precisam dessa capacidade devem converter para frente em barras traseiras antes de usar essa função.
Os exemplos a seguir mostram o efeito dessas cadeias de caracteres.
Cadeia de caracteres original | Cadeia de caracteres canônica |
---|---|
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:\ |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | pathcch.h |
Biblioteca | Pathcch.lib |