Funzione CreateDirectoryExA (winbase.h)
Crea una nuova directory con gli attributi di una directory modello specificata. Se il file system sottostante supporta la sicurezza su file e directory, la funzione applica un descrittore di sicurezza specificato alla nuova directory. La nuova directory mantiene gli altri attributi della directory modello specificata.
Per eseguire questa operazione come operazione transazionata, usare la funzione CreateDirectoryTransacted
Sintassi
BOOL CreateDirectoryExA(
[in] LPCSTR lpTemplateDirectory,
[in] LPCSTR lpNewDirectory,
[in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
Parametri
[in] lpTemplateDirectory
Percorso della directory da usare come modello durante la creazione della nuova directory.
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] lpNewDirectory
Percorso della directory da creare.
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, optional] lpSecurityAttributes
Puntatore a una struttura SECURITY_ATTRIBUTES. Il lpSecurityDescriptor membro della struttura specifica un descrittore di sicurezza per la nuova directory.
Se lpSecurityAttributes è null, la directory ottiene un descrittore di sicurezza predefinito. Gli elenchi di controllo di accesso (ACL) nel descrittore di sicurezza predefinito per una directory vengono ereditati dalla relativa directory padre.
Il file system di destinazione deve supportare la sicurezza dei file e delle directory affinché questo parametro abbia effetto. Questo valore è indicato quando GetVolumeInformation restituisce FS_PERSISTENT_ACLS.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero (0). Per ottenere informazioni estese sull'errore, chiamare GetLastError. I possibili errori includono quanto segue.
Codice restituito | Descrizione |
---|---|
|
La directory specificata esiste già. |
|
Una o più directory intermedie non esistono. Questa funzione crea solo la directory finale nel percorso. Per creare tutte le directory intermedie nel percorso, usare la funzione SHCreateDirectoryEx. |
Osservazioni
La funzione CreateDirectoryEx
Alcuni file system, ad esempio il file system NTFS, supportano la compressione o la crittografia per singoli file e directory. Nei volumi formattati per un file system di questo tipo, una nuova directory eredita gli attributi di compressione e crittografia della directory padre.
È possibile ottenere un handle in una directory chiamando la funzione CreateFile
Per supportare funzioni di ereditarietà che eseguono query sul descrittore di sicurezza di questo oggetto, è possibile determinare e segnalare che l'ereditarietà è attiva. Per altre informazioni, vedere propagazione automatica degli ACL ereditabili.
In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.
Tecnologia | Sostenuto |
---|---|
Protocollo SMB (Server Message Block) 3.0 | Sì |
SMB 3.0 Transparent Failover (TFO) | Sì |
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) | Sì |
Cluster Shared Volume File System (CsvFS) | Sì |
Resilient File System (ReFS) | Sì |
Nota
L'intestazione winbase.h definisce CreateDirectoryEx 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 XP [solo app desktop] |
server minimo supportato | Windows Server 2003 [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winbase.h (include Windows.h) |
libreria |
Kernel32.lib |
dll | Kernel32.dll |
Vedere anche
creazione ed eliminazione di directory
funzioni di gestione directory di