Función GetFileSize (fileapi.h)
Recupera el tamaño del archivo especificado, en bytes.
Se recomienda usar GetFileSizeEx.
Sintaxis
DWORD GetFileSize(
[in] HANDLE hFile,
[out, optional] LPDWORD lpFileSizeHigh
);
Parámetros
[in] hFile
Identificador del archivo.
[out, optional] lpFileSizeHigh
Puntero a la variable donde se devuelve la palabra doble de orden superior del tamaño del archivo. Este parámetro puede ser NULL si la aplicación no requiere la doble palabra de orden superior.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es la doble de orden bajo del tamaño del archivo y, si lpFileSizeHigh no es NULL, la función coloca la doble palabra doble de orden superior del tamaño del archivo en la variable a la que apunta ese parámetro.
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. Cuando lpFileSizeHigh es NULL, los resultados devueltos para archivos grandes son ambiguos y no podrá determinar el tamaño real del archivo. Se recomienda usar GetFileSizeEx en su lugar.
Si se produce un error en la función y lpFileSizeHigh no es NULL, el valor devuelto es INVALID_FILE_SIZE y GetLastError devolverá un valor distinto de NO_ERROR.
Comentarios
No se puede usar la función GetFileSize con un identificador de un dispositivo sin ver, como una canalización o un dispositivo de comunicaciones. Para determinar el tipo de archivo para hFile, use la función GetFileType .
La función GetFileSize recupera el tamaño sin comprimir de un archivo. Use la función GetCompressedFileSize para obtener el tamaño comprimido de un archivo.
Tenga en cuenta que si el valor devuelto es INVALID_FILE_SIZE (0xffffffff), una aplicación debe llamar a GetLastError para determinar si la función se ha realizado correctamente o no. El motivo por el que puede aparecer un error en la función cuando no tiene es que lpFileSizeHigh podría ser distinto de NULL o el tamaño del archivo podría ser 0xffffffff. En este caso, GetLastError devolverá NO_ERROR (0) cuando se complete correctamente. Debido a este comportamiento, se recomienda usar GetFileSizeEx en su lugar.
Operaciones de transacción: Si hay una transacción enlazada al identificador de archivo, la función devuelve información para la vista de archivo aislada.
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 | 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 a errores (ReFS) | Sí |
Ejemplos
Para obtener un ejemplo, vea Crear una vista dentro de un archivo.
Requisitos
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 (incluye Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |