Condividi tramite


Funzione CreateSymbolicLinkA (winbase.h)

Crea un collegamento simbolico.

Per eseguire questa operazione come operazione transazionata, usare la funzione CreateSymbolicLinkTransacted.

Sintassi

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

Parametri

[in] lpSymlinkFileName

Collegamento simbolico da creare.

Questo parametro può includere il percorso.

Per impostazione predefinita, il nome è limitato a MAX_PATH caratteri. Per estendere questo limite a 32.767 caratteri wide, anteporre "\\?\" al percorso. Per altre informazioni, vedere denominazione di file, percorsi e spazi dei nomi.

Mancia

A partire da Windows 10, versione 1607, è possibile acconsentire esplicitamente alla rimozione della limitazione MAX_PATH senza anteporre "\\?\". Per informazioni dettagliate, vedere la sezione "Limitazione massima della lunghezza del percorso" di nomi, percorsi e spazi dei nomi.

[in] lpTargetFileName

Nome della destinazione per il collegamento simbolico da creare.

Se lpTargetFileName ha un nome di dispositivo associato, il collegamento viene considerato come un collegamento assoluto; in caso contrario, il collegamento viene considerato come un collegamento relativo.

Questo parametro può includere il percorso.

Per impostazione predefinita, il nome è limitato a MAX_PATH caratteri. Per estendere questo limite a 32.767 caratteri wide, anteporre "\\?\" al percorso. Per altre informazioni, vedere denominazione di file, percorsi e spazi dei nomi.

Mancia

A partire da Windows 10, versione 1607, è possibile acconsentire esplicitamente alla rimozione della limitazione MAX_PATH senza anteporre "\\?\". Per informazioni dettagliate, vedere la sezione "Limitazione massima della lunghezza del percorso" di nomi, percorsi e spazi dei nomi.

[in] dwFlags

Indica se la destinazione del collegamento, lpTargetFileName, è una directory.

Valore Significato
0x0
La destinazione del collegamento è un file.
SYMBOLIC_LINK_FLAG_DIRECTORY
0x1
La destinazione del collegamento è una directory.
SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
0x2
Specificare questo flag per consentire la creazione di collegamenti simbolici quando il processo non è elevato. Nella piattaforma UWP modalità sviluppatore deve essere abilitata prima che questa opzione funzioni. In MSIX la modalità sviluppatore non deve essere abilitata per questo flag.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.

Osservazioni

I collegamenti simbolici possono essere collegamenti assoluti o relativi. I collegamenti assoluti sono collegamenti che specificano ogni parte del nome del percorso; I collegamenti relativi vengono determinati in relazione alla posizione in cui gli identificatori di collegamento relativo si trovano in un percorso specificato. I collegamenti relativi vengono specificati usando le convenzioni seguenti:

  • Convenzioni dot (. e ..), ad esempio ".. \" risolve il percorso relativo alla directory padre.
  • I nomi senza barre (\\),ad esempio "tmp" risolvono il percorso relativo alla directory corrente.
  • Radice relativa, ad esempio "\Windows\System32" viene risolto in "'unità corrente:\Windows\System32".
  • Directory di lavoro corrente relativa, ad esempio se la directory di lavoro corrente è C:\Windows\System32, "C:File.txt" viene risolta in "C:\Windows\System32\File.txt".
    Nota Se si specifica un collegamento relativo alla directory di lavoro corrente, viene creato come collegamento assoluto, a causa del modo in cui la directory di lavoro corrente viene elaborata in base all'utente e al thread.
     
Per rimuovere un collegamento simbolico, eliminare il file (usando DeleteFile o API simili) o rimuovere la directory (usando RemoveDirectory o API simili) a seconda del tipo di collegamento simbolico usato.

In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.

Tecnologia Sostenuto
Protocollo SMB (Server Message Block) 3.0
SMB 3.0 Transparent Failover (TFO)
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) No
Cluster Shared Volume File System (CsvFS) No
Resilient File System (ReFS)
 

CsvFs non supporta il collegamento soft o altri punti di analisi.

Nota

L'intestazione winbase.h definisce CreateSymbolicLink come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista [solo app desktop]
server minimo supportato Windows Server 2008 [solo app desktop]
piattaforma di destinazione Finestre
intestazione winbase.h (include Windows.h)
libreria Kernel32.lib
dll Kernel32.dll

Vedere anche

CreateSymbolicLinkTransacted

funzioni di gestione file

collegamenti simbolici