Effetti di collegamento simbolico sulle funzioni dei file system

Diverse funzioni di file standard che usano nomi di percorso per specificare uno o più file sono interessati dall'uso di collegamenti simbolici. In questo argomento vengono elencate queste funzioni e vengono descritte le modifiche apportate al comportamento:

Nelle descrizioni seguenti vengono usati i termini seguenti:

  • File di origine: file originale da copiare.
  • File di destinazione: copia appena creata del file.
  • Destinazione: entità a cui punta un collegamento simbolico.

Nota

Il comportamento delle funzioni che accettano un handle creato usando la funzione CreateFile, ad esempio la funzione GetFileTime, differirà in base al fatto che la funzione CreateFile sia stata chiamata usando il flag di FILE_FLAG_OPEN_REPARSE_POINT. Per altre informazioni, vedere CreateFile e la sezione CreateFile e CreateFileTransacted seguente.

 

CopyFile e CopyFileTransacted

Se il file di origine è un collegamento simbolico, il file effettivo copiato è la destinazione del collegamento simbolico.

Se il file di destinazione esiste già ed è un collegamento simbolico, la destinazione del collegamento simbolico viene sovrascritta dal file di origine.

CopyFileEx

Se COPY_FILE_COPY_SYMLINK è specificato e:

  • Se il file di origine è un collegamento simbolico, il collegamento simbolico viene copiato, non il file di destinazione.
  • Se il file di origine non è un collegamento simbolico, non esiste alcuna modifica nel comportamento.
  • Se il file di destinazione è un collegamento simbolico esistente, il collegamento simbolico viene sovrascritto, non il file di destinazione.
  • Se COPY_FILE_FAIL_IF_EXISTS viene specificato anche e il file di destinazione è un collegamento simbolico esistente, l'operazione ha esito negativo in tutti i casi.

Se COPY_FILE_COPY_SYMLINK non è specificato e:

  • Se COPY_FILE_FAIL_IF_EXISTS viene specificato anche e il file di destinazione è un collegamento simbolico esistente, l'operazione ha esito negativo solo se la destinazione del collegamento simbolico esiste.
  • Se COPY_FILE_FAIL_IF_EXISTS non è specificato, non esiste alcuna modifica nel comportamento.

Windows Server 2003 e Windows XP: Il flag COPY_FILE_COPY_SYMLINK non è supportato. Se il file di origine è un collegamento simbolico, il file effettivo copiato è la destinazione del collegamento simbolico.

CreateFile e CreateFileTransacted

Se la chiamata a questa funzione crea un nuovo file, non esiste alcuna modifica nel comportamento.

Se FILE_FLAG_OPEN_REPARSE_POINT è specificato e:

  • Se viene aperto un file esistente ed è un collegamento simbolico, l'handle restituito è un handle per il collegamento simbolico.
  • Se CREATE_ALWAYS, TRUNCATE_EXISTINGo FILE_FLAG_DELETE_ON_CLOSE vengono specificati, il file interessato è un collegamento simbolico.

Se FILE_FLAG_OPEN_REPARSE_POINT non è specificato e:

  • Se viene aperto un file esistente ed è un collegamento simbolico, l'handle restituito è un handle alla destinazione.
  • Se CREATE_ALWAYS, TRUNCATE_EXISTINGo FILE_FLAG_DELETE_ON_CLOSE vengono specificati, il file interessato è la destinazione.

Se il percorso punta a un collegamento simbolico, la funzione crea un collegamento rigido alla destinazione.

DeleteFile e DeleteFileTransacted

Se il percorso punta a un collegamento simbolico, il collegamento simbolico viene eliminato, non la destinazione. Per eliminare una destinazione, è necessario chiamare CreateFile e specificare FILE_FLAG_DELETE_ON_CLOSE.

FindFirstChangeNotification

Se il percorso punta a un collegamento simbolico, l'handle di notifica viene creato per la destinazione. Se un'applicazione ha registrato per ricevere notifiche di modifica per una directory che contiene collegamenti simbolici, l'applicazione riceve una notifica solo quando i collegamenti simbolici sono stati modificati, non i file di destinazione.

FindFirstFile e FindFirstFileTransacted

Se il percorso punta a un collegamento simbolico, il buffer WIN32_FIND_DATA contiene informazioni sul collegamento simbolico, non sulla destinazione.

FindFirstFileEx

Se il percorso punta a un collegamento simbolico, il buffer WIN32_FIND_DATA contiene informazioni sul collegamento simbolico, non sulla destinazione.

Findnextfile

Se il percorso punta a un collegamento simbolico, il buffer WIN32_FIND_DATA contiene informazioni sul collegamento simbolico, non sulla destinazione.

GetBinaryType

Se il percorso punta a un collegamento simbolico, viene usato il file di destinazione.

GetCompressedFileSize e GetCompressedFileSizeTransacted

Se il percorso punta a un collegamento simbolico, la funzione restituisce le dimensioni del file della destinazione.

GetDiskFreeSpace

Se il percorso punta a un collegamento simbolico, l'operazione viene eseguita sulla destinazione.

Getdiskfreespaceex

Se il percorso punta a un collegamento simbolico, l'operazione viene eseguita sulla destinazione.

GetFileAttributes

Se il percorso punta a un collegamento simbolico, la funzione restituisce attributi per il collegamento simbolico.

GetFileAttributesEx

Se il percorso punta a un collegamento simbolico, la funzione restituisce attributi per il collegamento simbolico.

GetFileSecurity

Se il percorso punta a un collegamento simbolico, la funzione restituisce attributi per il collegamento simbolico.

GetTempPath

Se il percorso punta a un collegamento simbolico, il nome del percorso temporaneo mantiene eventuali collegamenti simbolici.

GetVolumeInformation

Se il percorso punta a un collegamento simbolico, la funzione restituisce informazioni sul volume per la destinazione.

SetFileAttributes

Se il percorso punta a un collegamento simbolico, la funzione recupera gli attributi per il collegamento simbolico.

SetFileSecurity

Se il percorso punta a un collegamento simbolico, la funzione restituisce attributi per il collegamento simbolico.

CopyFile

CopyFileTransacted

CopyFileEx

CreateFile

CreateFileTransacted

CreateHardLink

CreateHardLinkTransacted

DeleteFile

DeleteFileTransacted

FindFirstChangeNotification

Findfirstfile

FindFirstFileEx

FindFirstFileTransacted

Findnextfile

GetBinaryType

GetCompressedFileSize

GetCompressedFileSizeTransacted

GetDiskFreeSpace

Getdiskfreespaceex

GetFileAttributes

GetFileAttributesEx

GetFileSecurity

GetTempPath

GetVolumeInformation

SetFileAttributes

SetFileSecurity