Función GetCompressedFileSizeA (fileapi.h)

Recupera el número real de bytes de almacenamiento en disco usado para almacenar un archivo especificado. Si el archivo se encuentra en un volumen que admite la compresión y el archivo se comprime, el valor obtenido es el tamaño comprimido del archivo especificado. Si el archivo se encuentra en un volumen que admite archivos dispersos y el archivo es un archivo disperso, el valor obtenido es el tamaño disperso del archivo especificado.

Para realizar esta operación como una operación de transacción, use la función GetCompressedFileSizeTransact .

Sintaxis

DWORD GetCompressedFileSizeA(
  [in]            LPCSTR  lpFileName,
  [out, optional] LPDWORD lpFileSizeHigh
);

Parámetros

[in] lpFileName

Nombre del archivo.

No especifique el nombre de un archivo en un dispositivo que no esté consultando, como una canalización o un dispositivo de comunicaciones, ya que su tamaño de archivo no tiene ningún significado.

Este parámetro puede incluir la ruta de acceso.

De forma predeterminada, el nombre está limitado a MAX_PATH caracteres. Para ampliar este límite a 32 767 caracteres anchos, anteponga "\\?\" a la ruta de acceso. Para obtener más información, vea Nomenclatura de archivos, rutas de acceso y espacios de nombres.

Sugerencia

A partir de Windows 10, versión 1607, puede optar por quitar la limitación de MAX_PATH sin prepending "\\?\". Consulte la sección "Limitación máxima de longitud de ruta de acceso" de Nombres de archivos, rutas de acceso y espacios de nombres para obtener más información.

[out, optional] lpFileSizeHigh

DWORD de orden alto del tamaño de archivo comprimido. El valor devuelto de la función es el DWORD de orden bajo del tamaño de archivo comprimido.

Este parámetro puede ser NULL si no se necesita el DWORD de orden alto del tamaño de archivo comprimido. Los archivos de menos de 4 gigabytes de tamaño no necesitan el DWORD de orden alto.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es el DWORD de orden bajo del número real de bytes de almacenamiento en disco que se usa para almacenar el archivo especificado y, si lpFileSizeHigh no es NULL, la función coloca el DWORD de orden alto de ese valor real en el DWORD al que apunta ese parámetro. Este es el tamaño de archivo comprimido para los archivos comprimidos, el tamaño real del archivo para los archivos no comprimidos.

Si se produce un error en la función y lpFileSizeHigh es NULL, el valor devuelto es INVALID_FILE_SIZE. Para obtener información de error extendida, llame a GetLastError.

Si el valor devuelto es INVALID_FILE_SIZE y lpFileSizeHigh no es NULL, una aplicación debe llamar a GetLastError para determinar si la función se ha realizado correctamente (el valor es NO_ERROR) o no (el valor es distinto de NO_ERROR).

Comentarios

Una aplicación puede determinar si un volumen se comprime llamando a GetVolumeInformation y, a continuación, comprobando el estado de la marca FS_VOL_IS_COMPRESSED en el valor DWORD al que apunta el parámetro lpFileSystemFlags de esa función.

Si el archivo no se encuentra en un volumen que admite archivos de compresión o dispersos, o si el archivo no está comprimido o un archivo disperso, el valor obtenido es el tamaño de archivo real, igual que el valor devuelto por una llamada a GetFileSize.

Comportamiento simbólico del vínculo: si la ruta de acceso apunta a un vínculo simbólico, la función devuelve el tamaño del archivo del destino.

En Windows 8 y Windows Server 2012, esta función es compatible con las tecnologías siguientes.

Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS)
 

Nota

El encabezado fileapi.h define GetCompressedFileSize como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado fileapi.h (incluya Windows.h, WinBase.h, Fileapi.h, Windows.h, WinBase.h, Fileapi.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

Compresión y descompresión de archivos

Funciones de administración de archivos

GetCompressedFileSizeTransacted

GetFileSize

GetVolumeInformation

Vínculos simbólicos