Função GetLongPathNameTransactedA (winbase.h)
[A Microsoft recomenda fortemente que os desenvolvedores utilizem meios alternativos para alcançar as necessidades do aplicativo. Muitos cenários para os quais o TxF foi desenvolvido podem ser obtidos por meio de técnicas mais simples e prontamente disponíveis. Além disso, o TxF pode não estar disponível em versões futuras do Microsoft Windows. Para obter mais informações e alternativas ao TxF, consulte Alternativas para usar o NTFS transacional.]
Converte o caminho especificado em seu formulário longo como uma operação transacionada.
Para executar essa operação sem uma transação, use a função GetLongPathName.
Para obter mais informações sobre nomes de arquivo e caminho, consulte Arquivos de Nomenclatura, Caminhos e Namespaces.
Sintaxe
DWORD GetLongPathNameTransactedA(
[in] LPCSTR lpszShortPath,
[out] LPSTR lpszLongPath,
[in] DWORD cchBuffer,
[in] HANDLE hTransaction
);
Parâmetros
[in] lpszShortPath
O caminho a ser convertido.
Por padrão, o nome é limitado a MAX_PATH caracteres. Para estender esse limite para 32.767 caracteres de largura, acrescente "\\?\" ao caminho. Para obter mais informações, consulte Arquivos de Nomenclatura, Caminhos e Namespaces.
Ponta
A partir do Windows 10, versão 1607, você pode optar por remover a limitação de MAX_PATH sem acrescentar "\\?\". Consulte a seção "Limitação máxima do comprimento do caminho" de arquivos de nomenclatura, caminhos e namespaces para obter detalhes.
O caminho deve residir no computador local; caso contrário, a função falhará e o último código de erro será definido como ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
[out] lpszLongPath
Um ponteiro para o buffer para receber o caminho longo.
Você pode usar o mesmo buffer usado para o parâmetro lpszShortPath
[in] cchBuffer
O tamanho do buffer lpszLongPath aponta para, em de TCHAR.
[in] hTransaction
Um identificador para a transação. Esse identificador é retornado pela função
Valor de retorno
Se a função for bem-sucedida, o valor retornado será o comprimento, em TCHAR, da cadeia de caracteres copiada para lpszLongPath, sem incluir o caractere nulo de terminação.
Se o lpBuffer buffer for muito pequeno para conter o caminho, o valor retornado será o tamanho, em TCHARs, do buffer necessário para manter o caminho e o caractere nulo de terminação.
Se a função falhar por qualquer outro motivo, como se o arquivo não existir, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Observações
Em muitos sistemas de arquivos, um nome de arquivo curto contém um caractere de bloco (~). No entanto, nem todos os sistemas de arquivos seguem essa convenção. Portanto, não suponha que você possa ignorar a chamada GetLongPathNameTransacted se o caminho não contiver um caractere de bloco (~).
Se um caminho longo não for encontrado, essa função retornará o nome especificado no parâmetro lpszShortPath
Se o valor retornado for maior que o valor especificado em cchBuffer, você poderá chamar a função novamente com um buffer grande o suficiente para manter o caminho. Para obter um exemplo desse caso, consulte a seção Código de Exemplo para GetFullPathName.
No Windows 8 e no Windows Server 2012, essa função é compatível com as tecnologias a seguir.
Tecnologia | Suportado |
---|---|
Protocolo SMB (Bloco de Mensagens do Servidor) 3.0 | Não |
TFO (Failover Transparente) do SMB 3.0 | Não |
SMB 3.0 com Compartilhamentos de Arquivos de Expansão (SO) | Não |
Sistema de Arquivos de Volume Compartilhado de Cluster (CsvFS) | Não |
ReFS (Sistema de Arquivos Resiliente) | Não |
O SMB 3.0 não dá suporte ao TxF.
Nota
O cabeçalho winbase.h define GetLongPathNameTransacted como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Vista [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows Server 2008 [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | winbase.h (inclua Windows.h) |
biblioteca | Kernel32.lib |
de DLL |
Kernel32.dll |
Consulte também
Funções de gerenciamento de arquivos