GetCompressedFileSizeW, fonction (fileapi.h)

Récupère le nombre réel d’octets de stockage sur disque utilisé pour stocker un fichier spécifié. Si le fichier se trouve sur un volume qui prend en charge la compression et que le fichier est compressé, la valeur obtenue est la taille compressée du fichier spécifié. Si le fichier se trouve sur un volume qui prend en charge les fichiers épars et s’il s’agit d’un fichier partiellement alloué, la valeur obtenue est la taille éparse du fichier spécifié.

Pour effectuer cette opération en tant qu’opération traitée, utilisez la fonction GetCompressedFileSizeTransacted .

Syntaxe

DWORD GetCompressedFileSizeW(
  [in]            LPCWSTR lpFileName,
  [out, optional] LPDWORD lpFileSizeHigh
);

Paramètres

[in] lpFileName

Nom du fichier.

Ne spécifiez pas le nom d’un fichier sur un appareil sans affichage, tel qu’un canal ou un appareil de communication, car sa taille de fichier n’a aucune signification.

Ce paramètre peut inclure le chemin d’accès.

Par défaut, le nom est limité à MAX_PATH caractères. Pour étendre cette limite à 32 767 caractères larges, ajoutez « \\?\ » au chemin d’accès. Pour plus d’informations, consultez Nommage de fichiers, de chemins et d’espaces de noms.

Conseil

À compter de Windows 10, version 1607, vous pouvez choisir de supprimer la limitation MAX_PATH sans précédencer « \\?\ ». Pour plus d’informations, consultez la section « Limitation maximale de la longueur du chemin d’accès » de Naming Files, Paths et Namespaces .

[out, optional] lpFileSizeHigh

DWORD d’ordre élevé de la taille du fichier compressé. La valeur de retour de la fonction est la valeur DWORD de faible ordre de la taille du fichier compressé.

Ce paramètre peut avoir la valeur NULL si la valeur DWORD d’ordre élevé de la taille de fichier compressée n’est pas nécessaire. Les fichiers de moins de 4 gigaoctets n’ont pas besoin du DWORD d’ordre élevé.

Valeur retournée

Si la fonction réussit, la valeur de retour est le DWORD de faible ordre du nombre réel d’octets de stockage sur disque utilisé pour stocker le fichier spécifié, et si lpFileSizeHigh n’a pas la valeur NULL, la fonction place le DWORD d’ordre élevé de cette valeur réelle dans le DWORD pointé par ce paramètre. Il s’agit de la taille de fichier compressée pour les fichiers compressés, la taille réelle du fichier pour les fichiers non compressés.

Si la fonction échoue et si lpFileSizeHigh a la valeur NULL, la valeur de retour est INVALID_FILE_SIZE. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Si la valeur de retour est INVALID_FILE_SIZE et que lpFileSizeHigh n’a pas la valeur NULL, une application doit appeler GetLastError pour déterminer si la fonction a réussi (la valeur est NO_ERROR) ou a échoué (la valeur est autre que NO_ERROR).

Notes

Une application peut déterminer si un volume est compressé en appelant GetVolumeInformation, puis en vérifiant la status de l’indicateur FS_VOL_IS_COMPRESSED dans la valeur DWORD pointée par le paramètre lpFileSystemFlags de cette fonction.

Si le fichier ne se trouve pas sur un volume qui prend en charge la compression ou les fichiers éparses, ou si le fichier n’est pas compressé ou un fichier partiellement alloué, la valeur obtenue est la taille réelle du fichier, identique à la valeur retournée par un appel à GetFileSize.

Comportement des liens symboliques : si le chemin pointe vers un lien symbolique, la fonction retourne la taille de fichier de la cible.

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

Technologie Prise en charge
Protocole SMB (Server Message Block) 3.0 Oui
Basculement transparent (TFO) SMB 3.0 Oui
SMB 3.0 avec partages de fichiers avec montée en puissance sortante (SO) Oui
Cluster Shared Volume File System (CsvFS) Oui
Système de fichiers résilient (ReFS) Oui
 

Notes

L’en-tête fileapi.h définit GetCompressedFileSize comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

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

Voir aussi

Compression et décompression de fichiers

Fonctions de gestion de fichiers

GetCompressedFileSizeTransacted

GetFileSize

GetVolumeInformation

Liens symboliques