Funzione DeleteFileTransactedA (winbase.h)
[Microsoft consiglia vivamente agli sviluppatori di usare mezzi alternativi per soddisfare le esigenze dell'applicazione. Molti scenari per cui è stato sviluppato TxF possono essere ottenuti tramite tecniche più semplici e più facilmente disponibili. Inoltre, TxF potrebbe non essere disponibile nelle versioni future di Microsoft Windows. Per altre informazioni e alternative a TxF, vedere Alternative all'uso di NTFS transazionale.]
Elimina un file esistente come operazione transazionata.
Sintassi
BOOL DeleteFileTransactedA(
[in] LPCSTR lpFileName,
[in] HANDLE hTransaction
);
Parametri
[in] lpFileName
Nome del file da eliminare.
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.
Il file deve risiedere nel computer locale; in caso contrario, la funzione ha esito negativo e l'ultimo codice di errore è impostato su ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
[in] hTransaction
Handle per la transazione. Questo handle viene restituito dalla funzione CreateTransaction.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è 0 (zero). Per ottenere informazioni estese sull'errore, chiamare GetLastError.
Osservazioni
Se un'applicazione tenta di eliminare un file che non esiste, la funzione DeleteFileTransacted
L'elenco seguente identifica alcuni suggerimenti per l'eliminazione, la rimozione o la chiusura di file:
- Per eliminare un file di sola lettura, è prima necessario rimuovere l'attributo di sola lettura.
- Per eliminare o rinominare un file, è necessario disporre dell'autorizzazione di eliminazione per il file o eliminare l'autorizzazione figlio nella directory padre.
- Per eliminare in modo ricorsivo i file in una directory, usare la funzione
SHFileOperation. - Per rimuovere una directory vuota, usare la funzione RemoveDirectoryTransacted.
- Per chiudere un file aperto, usare la funzione CloseHandle
.
Se si richiede l'autorizzazione di eliminazione al momento della creazione di un file, è possibile eliminare o rinominare il file con tale handle, ma non con qualsiasi altro handle. Per altre informazioni, vedere File Security and Access Rights.
La funzione DeleteFileTransacted ha esito negativo se un'applicazione tenta di eliminare un file con altri handle aperti per le operazioni di I/O normali o come file mappato alla memoria (FILE_SHARE_DELETE deve essere stato specificato quando sono stati aperti altri handle).
La funzione DeleteFileTransacted
Collegamenti simbolici: 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.
In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.
Tecnologia | Sostenuto |
---|---|
Protocollo SMB (Server Message Block) 3.0 | No |
SMB 3.0 Transparent Failover (TFO) | No |
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) | No |
Cluster Shared Volume File System (CsvFS) | No |
Resilient File System (ReFS) | No |
SMB 3.0 non supporta TxF.
Nota
L'intestazione winbase.h definisce DeleteFileTransacted 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 Vista [solo app desktop] |
server minimo supportato | Windows Server 2008 [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winbase.h (include Windows.h) |
libreria |
Kernel32.lib |
dll | Kernel32.dll |