Condividi tramite


Funzione RemoveDirectory2A (fileapi.h)

Elimina una directory vuota esistente. Questa funzione avrà esito negativo se una parte di lpPathName viene reindirizzata tramite un punto reparse o un collegamento simbolico.

Per eseguire questa operazione come operazione transazionata, utilizzare la funzione RemoveDirectoryTransacted .

Sintassi

BOOL RemoveDirectory2A(
  LPCSTR          lpPathName,
  DIRECTORY_FLAGS DirectoryFlags
);

Parametri

lpPathName

Percorso della directory da rimuovere. Questo percorso deve specificare una directory vuota e il processo chiamante deve avere accesso eliminato alla 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.

Suggerimento

È possibile acconsentire esplicitamente per 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 .

DirectoryFlags

Flag che specificano la modalità di eliminazione della directory. Questo parametro può essere una combinazione dei valori seguenti:

Valore Significato
DIRECTORY_FLAGS_DISALLOW_PATH_REDIRECTS
0x00000001
Impedisci il reindirizzamento di lpPathName da punti reparse o collegamenti simbolici.

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:

La funzione RemoveDirectory2 contrassegna una directory per l'eliminazione alla chiusura. Pertanto, la directory non viene rimossa finché l'ultimo handle della directory non viene chiuso.

Per eliminare in modo ricorsivo i file in una directory, usare la funzione SHFileOperation .

RemoveDirectory2 può essere usato per rimuovere una giunzione di directory. Poiché la directory di destinazione e il relativo contenuto rimarranno accessibili tramite il relativo percorso canonico, la directory di destinazione stessa non è influenzata dalla rimozione di una giunzione destinata a essa. Per questo motivo, quando lpPathName fa riferimento a una giunzione di directory, RemoveDirectory2 rimuoverà il collegamento specificato indipendentemente dal fatto che la directory di destinazione sia vuota o meno. Per altre informazioni sulle giunzioni, vedere Collegamenti rigidi e giunzioni.

L'uso dell'eliminazione POSIX determina l'eliminazione della directory mentre gli handle rimangono aperti. Le chiamate successive a CreateDirectory o CreateDirectory2 per aprire la directory hanno esito negativo con ERROR_FILE_NOT_FOUND.

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)
Cluster Shared Volume File System (CsvFS)
Resilient File System (ReFS)

Annotazioni

L'intestazione fileapi.h definisce RemoveDirectory2 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 ulteriori informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows 11 24H2 [app desktop | App UWP]
server minimo supportato Windows Server 2025 [app desktop | App UWP]
intestazione fileapi.h (include Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Vedere anche

CreateDirectory2

Creazione ed Eliminazione di Directory

Funzioni di gestione directory

RemoveDirectoryTransacted