Compartilhar via


Função CreateSymbolicLinkA (winbase.h)

Cria um link simbólico.

Para executar essa operação como uma operação transacionada, use a função CreateSymbolicLinkTransacted.

Sintaxe

BOOLEAN CreateSymbolicLinkA(
  [in] LPCSTR lpSymlinkFileName,
  [in] LPCSTR lpTargetFileName,
  [in] DWORD  dwFlags
);

Parâmetros

[in] lpSymlinkFileName

O link simbólico a ser criado.

Esse parâmetro pode incluir o caminho.

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.

[in] lpTargetFileName

O nome do destino para o link simbólico a ser criado.

Se lpTargetFileName tiver um nome de dispositivo associado a ele, o link será tratado como um link absoluto; caso contrário, o link é tratado como um link relativo.

Esse parâmetro pode incluir o caminho.

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.

[in] dwFlags

Indica se o destino do link, lpTargetFileName, é um diretório.

Valor Significado
0x0
O destino do link é um arquivo.
SYMBOLIC_LINK_FLAG_DIRECTORY
0x1
O destino do link é um diretório.
SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
0x2
Especifique esse sinalizador para permitir a criação de links simbólicos quando o processo não for elevado. Na UWP, modo de desenvolvedor deve primeiro ser habilitado no computador antes que essa opção funcione. No MSIX, o modo de desenvolvedor não é necessário para ser habilitado para esse sinalizador.

Valor de retorno

Se a função for bem-sucedida, o valor retornado não será zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Observações

Links simbólicos podem ser links absolutos ou relativos. Links absolutos são links que especificam cada parte do nome do caminho; os links relativos são determinados em relação ao local em que os especificadores de vínculo relativo estão em um caminho especificado. Links relativos são especificados usando as seguintes convenções:

  • Convenções dot (. e ..) — por exemplo, ".. \" resolve o caminho relativo ao diretório pai.
  • Nomes sem barras (\\)— por exemplo, "tmp" resolve o caminho relativo ao diretório atual.
  • Relativo raiz — por exemplo, "\Windows\System32" resolve como "unidade atual:\Windows\System32".
  • Diretório de trabalho atual – relativo – por exemplo, se o diretório de trabalho atual for C:\Windows\System32, "C:File.txt" resolverá como "C:\Windows\System32\File.txt".
    Observação Se você especificar um link relativo do diretório de trabalho atual, ele será criado como um link absoluto, devido à maneira como o diretório de trabalho atual é processado com base no usuário e no thread.
     
Para remover um link simbólico, exclua o arquivo (usando DeleteFile ou APIs semelhantes) ou remova o diretório (usando RemoveDirectory ou APIs semelhantes), dependendo de qual tipo de link simbólico é usado.

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 Sim
TFO (Failover Transparente) do SMB 3.0 Sim
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) Sim
 

Os CsvFs não dão suporte ao link reversível nem a nenhum outro ponto de nova análise.

Nota

O cabeçalho winbase.h define CreateSymbolicLink 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

CreateSymbolicLinkTransacted

Funções de gerenciamento de arquivos

links simbólicos