Função PathCleanupSpec (shlobj_core.h)
[PathCleanupSpec está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele pode estar alterado ou indisponível em versões subsequentes.]
Remove caracteres ilegais de um nome de arquivo ou diretório. Impõe o formato de nome de arquivo 8.3 em unidades que não dão suporte a nomes de arquivo longos.
Sintaxe
int PathCleanupSpec(
[in, optional] PCWSTR pszDir,
[in, out] PWSTR pszSpec
);
Parâmetros
[in, optional] pszDir
Tipo: PCWSTR
Um ponteiro para um buffer encerrado em nulo que contém o caminho totalmente qualificado do diretório que conterá o arquivo ou diretório nomeado em pszSpec. O caminho não deve exceder MAX_PATH caracteres de comprimento, incluindo o caractere nulo de terminação. Esse caminho não é alterado.
Esse valor pode ser NULL.
[in, out] pszSpec
Tipo: PWSTR
Um ponteiro para um buffer encerrado em nulo que contém o nome do arquivo ou diretório a ser limpo. No caso de um arquivo, inclua a extensão do arquivo. Observe que, como '' é considerado um caractere inválido e será removido, esse buffer não pode conter um caminho com mais de um diretório profundo.
Ao sair, o buffer contém uma cadeia de caracteres terminada em nulo que inclui o nome limpo.
Esse buffer deve ter pelo menos MAX_PATH caracteres de comprimento para evitar a possibilidade de um estouro de buffer.
Retornar valor
Tipo: int
Retorna um ou mais dos valores a seguir.
Código de retorno | Descrição |
---|---|
|
Substituiu um ou mais caracteres inválidos. |
|
Removeu um ou mais caracteres inválidos. |
|
O caminho retornado é truncado. |
|
A função falhou porque o caminho de entrada especificado em pszDir é muito longo para permitir a formação de um nome de arquivo válido do pszSpec. Quando esse sinalizador é retornado, ele é sempre acompanhado pelo sinalizador PCS_FATAL. |
|
O caminho limpo não é um nome de arquivo válido. Esse sinalizador sempre é retornado em conjunto com PCS_PATHTOOLONG. |
Comentários
A seguir, são considerados caracteres inválidos em todos os nomes.
\ / : * ? " < > |
Os caracteres de controle também são considerados inválidos. Se não houver suporte para nomes de arquivo longos, os caracteres semi-dois-pontos (;) e vírgula (,) também serão inválidos.
A unidade nomeada em pszDir é verificada para determinar se seu sistema de arquivos dá suporte a nomes de arquivos longos. Se isso não acontecer, o nome em pszSpec será truncado para o formato 8.3 e o valor PCS_TRUNCATED retornado. Se pszDir for NULL, a unidade na qual o Windows está instalado será usada para determinar o suporte ao nome de arquivo longo.
Se o caminho completo — o número de caracteres no caminho em pszDir mais o número de caracteres no nome limpo em pszSpec — exceder MAX_PATH – 1 (para considerar o caractere nulo de terminação), a função retornará PCS_PATHTOOLONG.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | shlobj_core.h (inclua Shlobj.h) |
Biblioteca | Shell32.lib |
DLL | Shell32.dll (versão 5.0 ou posterior) |