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 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 | Sì |
Failover trasparente SMB 3.0 (TFO) | Sì |
SMB 3.0 con condivisioni file di scalabilità orizzontale (SO) | Sì |
File system del volume condiviso cluster (CsvFS) | Sì |
Resilient File System (ReFS) | Sì |
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 |