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
Este parámetro puede ser
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es el
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 | Sí |
Conmutación por error transparente (TFO) de SMB 3.0 | Sí |
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) | Sí |
Sistema de archivos de volumen compartido de clúster (CsvFS) | Sí |
Sistema de archivos resistente (ReFS) | Sí |
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