Funzione SetFileAttributesA (fileapi.h)

Imposta gli attributi per un file o una directory.

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

Sintassi

BOOL SetFileAttributesA(
  [in] LPCSTR lpFileName,
  [in] DWORD  dwFileAttributes
);

Parametri

[in] lpFileName

Nome del file i cui attributi devono essere impostati.

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.

Suggerimento

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

[in] dwFileAttributes

Attributi del file da impostare per il file.

Questo parametro può essere uno o più valori, combinati usando l'operatore OR bit per bit. Tuttavia, tutti gli altri valori eseguono l'override FILE_ATTRIBUTE_NORMAL.

Non tutti gli attributi sono supportati da questa funzione. Per altre informazioni, vedere la sezione Osservazioni.

Di seguito è riportato un elenco di valori di attributo supportati.

Valore Significato
FILE_ATTRIBUTE_ARCHIVE
32 (0x20)
Un file o una directory che è un file o una directory di archiviazione. Le applicazioni usano in genere questo attributo per contrassegnare i file per il backup o la rimozione.
FILE_ATTRIBUTE_HIDDEN
2 (0x2)
Il file o la directory è nascosta. Non è incluso in un elenco di directory normale.
FILE_ATTRIBUTE_NORMAL
128 (0x80)
File che non dispone di altri attributi impostati. Questo attributo è valido solo se usato da solo.
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
8192 (0x2000)
Il file o la directory non deve essere indicizzato dal servizio di indicizzazione del contenuto.
FILE_ATTRIBUTE_OFFLINE
4096 (0x1000)
I dati di un file non sono immediatamente disponibili. Questo attributo indica che i dati del file vengono spostati fisicamente nell'archiviazione offline. Questo attributo viene usato da Archiviazione remota, ovvero il software di gestione dell'archiviazione gerarchica. Le applicazioni non devono modificare arbitrariamente questo attributo.
FILE_ATTRIBUTE_READONLY
1 (0x1)
File di sola lettura. Le applicazioni possono leggere il file, ma non possono scrivervi o eliminarle. Questo attributo non viene rispettato nelle directory. Per ulteriori informazioni, vedere "Non è possibile visualizzare o modificare gli attributi di sola lettura o di sistema delle cartelle in Windows Server 2003, in Windows XP o in Windows Vista.
FILE_ATTRIBUTE_SYSTEM
4 (0x4)
Un file o una directory utilizzata dal sistema operativo in modo esclusivo.
FILE_ATTRIBUTE_TEMPORARY
256 (0x100)
File utilizzato per l'archiviazione temporanea. I file system evitano di scrivere nuovamente i dati nell'archiviazione di massa se è disponibile memoria cache sufficiente, perché in genere un'applicazione elimina un file temporaneo dopo la chiusura dell'handle. In questo scenario, il sistema può evitare completamente di scrivere i dati. In caso contrario, i dati sono scritti dopo la chiusura dell'handle.

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 informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Nella tabella seguente viene descritto come impostare gli attributi che non possono essere impostati usando SetFileAttributes. Per un elenco completo di tutti i valori degli attributi di file e delle relative descrizioni, vedere Costanti degli attributi file.

Attributo Come impostare
FILE_ATTRIBUTE_COMPRESSED

0x800

Per impostare lo stato di compressione di un file, usare la funzione DeviceIoControl con l'operazione di FSCTL_SET_COMPRESSION .
FILE_ATTRIBUTE_DEVICE

0x40

Riservati; non usare.
FILE_ATTRIBUTE_DIRECTORY

0x10

I file non possono essere convertiti in directory. Per creare una directory, usare la funzione CreateDirectory o CreateDirectoryEx .
FILE_ATTRIBUTE_ENCRYPTED

0x4000

Per creare un file crittografato, usare la funzione CreateFile con l'attributo FILE_ATTRIBUTE_ENCRYPTED . Per convertire un file esistente in un file crittografato, usare la funzione EncryptFile .
FILE_ATTRIBUTE_REPARSE_POINT

0x400

Per associare un punto reparse a un file o a una directory, usare la funzione DeviceIoControl con l'operazione di FSCTL_SET_REPARSE_POINT .
FILE_ATTRIBUTE_SPARSE_FILE

0x200

Per impostare l'attributo sparse di un file, usare la funzione DeviceIoControl con l'operazione FSCTL_SET_SPARSE .
 

Operazioni transazionate

Se un file è aperto per la modifica in una transazione, nessun altro thread può aprire il file per la modifica finché non viene eseguito il commit della transazione. Pertanto, se un thread transazionale apre prima il file, tutti i thread successivi che tentano di modificare il file prima che venga eseguito il commit della transazione ricevano una violazione di condivisione. Se un thread non transazionale modifica il file prima che il thread transazionale e il file sia ancora aperto quando la transazione tenta di aprirlo, la transazione riceve l'errore ERROR_TRANSACTIONAL_CONFLICT.

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

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0
Failover trasparente SMB 3.0 (TFO)
SMB 3.0 con condivisioni file di scalabilità orizzontale (SO)
File system del volume condiviso cluster (CsvFS)
Resilient File System (ReFS)
 

Esempi

Per un esempio, vedere Recupero e modifica degli attributi del file.

Nota

L'intestazione fileapi.h definisce SetFileAttributes 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 che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

   
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione fileapi.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Costanti degli attributi di file

Funzioni di gestione file

GetFileAttributes

SetFileAttributesTransacted

Collegamenti simbolici

NTFS transazionale