GetCompressedFileSizeW, fonction (fileapi.h)
Récupère le nombre réel d’octets du 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 partiellement alloués et que le fichier est 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 transactionnelle, 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 non manuscrit, 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 des fichiers, des chemins d’accès et des espaces de noms.
Pourboire
À compter de Windows 10, version 1607, vous pouvez choisir de supprimer la limitation MAX_PATH sans précéder « \\ ?\ ». Pour plus d’informations, consultez la section « Limite maximale de longueur de chemin » de noms, fichiers, chemin s et espaces de noms.
[out, optional] lpFileSizeHigh
L’ordre élevé DWORD de la taille de fichier compressée. La valeur de retour de la fonction est la valeur de faible ordre DWORD de la taille de fichier compressée.
Ce paramètre peut être null si l’ordre élevé DWORD de la taille de fichier compressé n’est pas nécessaire. Les fichiers de taille inférieure à 4 gigaoctets n’ont pas besoin de l’ordre élevé DWORD.
Valeur de retour
Si la fonction réussit, la valeur de retour est la valeur de faible ordre
Si la fonction échoue et que lpFileSizeHigh est NULL, la valeur de retour est INVALID_FILE_SIZE. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Si la valeur de retour est INVALID_FILE_SIZE et lpFileSizeHigh n’est pasnull, 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 différente de NO_ERROR).
Remarques
Une application peut déterminer si un volume est compressé en appelant GetVolumeInformation, puis en vérifiant l’état de l’indicateur de FS_VOL_IS_COMPRESSED dans la valeur DWORD pointée par le paramètre lpFileSystemFlags de cette fonction.
Si le fichier n’est pas situé sur un volume qui prend en charge la compression ou les fichiers partiellement alloués, 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 de lien symbolique : si le chemin pointe vers un lien symbolique, la fonction retourne la taille du fichier de la cible.
Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.
Technologie | Supporté |
---|---|
Protocole SMB (Server Message Block) 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 |
Cluster Shared Volume File System (CsvFS) | Oui |
Système de fichiers résilient (ReFS) | Oui |
Note
L’en-tête fileapi.h définit GetCompressedFileSize en tant qu’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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows XP [applications de bureau uniquement] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | fileapi.h (include 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