Criando links simbólicos

A função CreateSymbolicLink permite que você crie links simbólicos usando um caminho absoluto ou relativo.

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 link 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" é resolvido para a "unidade atual:\Windows\System32". directory

  • Atualmente relativo ao diretório de trabalho, por exemplo, se o diretório de trabalho atual for "C:\Windows\System32", "C:File.txt" será resolvido como "C:\Windows\System32\File.txt".

    Nota 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.

Um link simbólico também pode conter pontos de junção e pastas montadas como parte do nome do caminho.

Links simbólicos podem apontar diretamente para um arquivo ou diretório remoto usando o caminho UNC.

Links simbólicos relativos são restritos a um único volume.

Neste exemplo, o caminho original contém um componente , 'x', que é um link simbólico absoluto. Quando 'x' é encontrado, o fragmento do caminho original até e incluindo 'x' é completamente substituído pelo caminho apontado por 'x'. O restante do caminho após 'x' é acrescentado a esse novo caminho. Isso agora se torna o caminho modificado.

X: "C:\alpha\beta\absLink\gamma\file"

Link: "absLink" é mapeado para "\\machineB\share"

Caminho modificado: "\\machineB\share\gamma\file"

Neste exemplo, o caminho original contém um componente 'x', que é um link simbólico relativo. Quando 'x' é encontrado, 'x' é completamente substituído pelo novo fragmento apontado por 'x'. O restante do caminho após 'x', é acrescentado ao novo caminho. Qualquer ponto (..) nesse novo caminho substitui os componentes que aparecem antes dos ponto (..). Cada conjunto de ponto substitui o componente anterior. Se o número de ponto (..) exceder o número de componentes, um erro será retornado. Caso contrário, quando toda a substituição de componente for concluída, o caminho final modificado permanecerá.

X: C:\alpha\beta\link\gamma\file

Link: "link" é mapeado para ".. \.. \theta"

Caminho modificado: "C:\alpha\beta\.. \.. \theta\gamma\file"

Caminho final: "C:\theta\gamma\file"

Links simbólicos

Links rígidos e junções

Nomenclatura de arquivos, caminhos e namespaces