Syntaxe
BOOL DeleteFileA(
LPCTSTR lpFileName
);
|
Paramètres
Nom |
Description |
lpFileName |
Ce paramètre permet d'indiquer l'adresse du nom d'un fichier à supprimer. |
Retour
Valeur |
Description |
0 |
Cette valeur permet d'indiquer que la fonction a échoué. Pour obtenir des informations d'erreur étendues, appelez la fonction GetLastError. |
0 != |
Ces valeurs permettent d'indiquer que l'opération a réussi. |
Description
Cette fonction permet de supprimer un fichier existant.
Remarques
- Dans la version ANSI de cette fonction (soit DeleteFileA), le nom est limité aux caractères MAX_PATH. Pour étendre cette limite à 32 767 caractères larges, appelez la version Unicode
de la fonction (DeleteFileW) et ajoutez «\?» au chemin.
- Si une application tente de supprimer un fichier inexistant, la fonction DeleteFileA échoue avec ERROR_FILE_NOT_FOUND. Si le fichier est un fichier en lecture seulement,
la fonction échoue avec ERROR_ACCESS_DENIED.
- La liste suivante identifie des astuces pour supprimer, supprimer ou fermer des fichiers : Pour supprimer un fichier en lecture seulement, vous devez d'abord supprimer
l'attribut en lecture seulement, pour supprimer ou renommer un fichier, vous devez disposer d'une autorisation de suppression sur le fichier ou d'une autorisation de suppression enfant
dans le répertoire parent, pour supprimer de manière récursive les fichiers d'un répertoire, utilisez la fonction SHFileOperation, pour supprimer un répertoire vide, utilisez la
fonction RemoveDirectoryA, pour fermer un fichier ouvert, utilisez la fonction CloseHandle.
- Si vous configurez un répertoire avec tous les accès sauf la suppression et la suppression enfant et que les listes de contrôle d'accès (ACL) des nouveaux fichiers sont
héritées, vous pouvez créer un fichier sans pouvoir le supprimer. Toutefois, vous pouvez ensuite créer un fichier, puis obtenir tous les accès demandés sur le descripteur vous étant renvoyé au
moment de la création du fichier.
- Si vous demandez une autorisation de suppression au moment de créer un fichier, vous pouvez supprimer ou renommer le fichier avec ce descripteur, mais pas avec un autre descripteur.
- La fonction DeleteFileA échoue si une application tente de supprimer un fichier comportant d'autres descripteurs ouverts pour des entrées/sorties normales ou un fichier
cartographié en mémoire (FILE_SHARE_DELETE doit avoir été spécifié lors de l'ouverture d'autres descripteurs).
- La fonction DeleteFileA marque un fichier à supprimer à la fermeture. Par conséquent, la suppression du fichier ne se produit pas tant que le dernier descripteur du fichier
n'est pas fermé. Les appels suivants à CreateFileA pour ouvrir le fichier échouent avec ERROR_ACCESS_DENIED.
- Comportement de lien symbolique : Si le chemin pointe vers un lien symbolique, le lien symbolique est supprimé et non la cible. Pour supprimer une cible, vous
devez appeler CreateFileA et spécifier FILE_FLAG_DELETE_ON_CLOSE.
- A partir de Windows 8 et Windows Server 2012, cette fonction est prise en charge par
les technologies suivantes :
Technologie |
Supporté |
Protocole SMB (Server Message Block) version 3.0 |
Oui |
TFO (SMB 3.0 Transparent Failover) |
Selon certaines conditions |
SMB 3.0 avec SO (Scale-out File Share) |
Selon certaines conditions |
CsvFS (Cluster Shared Volume File System) |
Oui |
ReFS (Resilient File System) |
Oui |
Voir également
Langage de programmation - C pour Windows - API de Windows - CloseHandle
Langage de programmation - C pour Windows - API de Windows - CreateFileA
Articles - Les géants de l'informatique - Microsoft
Dernière mise à jour : Dimanche, le 6 décembre 2015