Compartir a través de


Función GetCompressedFileSizeA (fileapi.h)

Recupera el número real de bytes de almacenamiento en disco que se usa 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 GetCompressedFileSizeTransacted.

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 sentido.

Este parámetro puede incluir la ruta de acceso.

De forma predeterminada, el nombre se limita 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 Archivos de nomenclatura, rutas de acceso y espacios de nombres.

Propina

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

[out, optional] lpFileSizeHigh

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

Este parámetro puede ser NULL si no se necesita el DWORD de orden superior 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 DWORD del número real de bytes de almacenamiento en disco usado para almacenar el archivo especificado y, si lpFileSizeHigh no esNULL, la función coloca el DWORD DWORD de ese valor real en el DWORD apuntado por 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 esNULL, 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).

Observaciones

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

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

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

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

Tecnología Soportado
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 (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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de fileapi.h (incluya Windows.h, WinBase.h, Fileapi.h, Windows.h, WinBase.h, Fileapi.h)
biblioteca de Kernel32.lib
DLL de Kernel32.dll

Consulte también

de compresión y descompresión de archivos

funciones de administración de archivos

GetCompressedFileSizeTransacted

GetFileSize

GetVolumeInformation

vínculos simbólicos