SetEndOfFile, fonction (fileapi.h)

Définit la taille physique du fichier spécifié à la position actuelle du pointeur de fichier.

La taille du fichier physique est également appelée fin du fichier. La fonction SetEndOfFile peut être utilisée pour tronquer ou étendre un fichier. Pour définir la fin logique d’un fichier, utilisez la fonction SetFileValidData .

Syntaxe

BOOL SetEndOfFile(
  [in] HANDLE hFile
);

Paramètres

[in] hFile

Handle du fichier à étendre ou à tronquer.

Le handle de fichier doit être créé avec le droit d’accès GENERIC_WRITE . Pour plus d’informations, consultez Sécurité des fichiers et droits d’accès.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro (0). Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Notes

La fonction SetEndOfFile peut être utilisée pour tronquer ou étendre un fichier. Si le fichier est étendu, le contenu du fichier entre l’ancienne fin du fichier et la nouvelle fin du fichier n’est pas défini.

Chaque flux de fichiers comporte les éléments suivants :

  • Taille de fichier : taille des données d’un fichier, sur l’octet.
  • Taille d’allocation : taille de l’espace alloué à un fichier sur un disque, qui est toujours un multiple pair de la taille du cluster.
  • Longueur de données valide : longueur des données d’un fichier réellement écrit, sur l’octet. Cette valeur est toujours inférieure ou égale à la taille de fichier.
La fonction SetEndOfFile définit la taille du fichier. Utilisez SetFileValidData pour définir la longueur des données valides.

Si
CreateFileMapping est appelé pour créer un objet de mappage de fichiers pour hFile. UnmapViewOfFile doit d’abord être appelé pour annuler le mappage de toutes les vues et appeler CloseHandle pour fermer l’objet de mappage de fichiers avant de pouvoir appeler SetEndOfFile.

Opérations traitées

S’il existe une transaction liée au descripteur, la modification de la position de fin de fichier est traitée.

Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.

Technologie Prise en charge
Protocole Server Message Block (SMB) 3.0 Oui
Basculement transparent SMB 3.0 (TFO) Oui
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) Oui
Système de fichiers du volume partagé de cluster (CsvFS) Oui
Système de fichiers résilient (ReFS) Oui

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête fileapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

CloseHandle

CreateFile

CreateFileMapping

Fonctions de gestion des fichiers

SetFileInformationByHandle

SetFileValidData

UnmapViewOfFile