GetFileSize
La función GetFileSize devuelve el tamaño, en bytes, del fichero especificado.
Sintaxis
DWORD GetFileSize( HANDLE hFile, // manipulador de fichero del que se quiere recuperar el tamaño LPDWORD lpFileSizeHigh // dirección de la palabra de mayor peso para el tamaño del fichero );
Parámetros
hFile: especidica un manipulador abierto del fichero cuyo tamaño se quiere recuperar. El manipulador debe ser creado con el acceso GENERIC_READ o GENERIC_WRITE.
lpFileSizeHigh: apunta a la variable donde se almacenará la palabra de mayor peso del valor del tamaño del fichero devuelto. Este parámetro puede ser NULL si la aplicación no necesita la palabra de mayor peso.
Valor de retorno
Si la función tiene éxito, el valor de retorno es la palabra de menor peso del valor de doble palabra usado para el tamaño del fichero y, si el parámetro lpFileSizeHigh no es NULL, la función coloca la palabra de mayor peso de ese valor en la variable apuntada por ese parámetro.
Si la función falla y lpFileSizeHigh no es NULL, el valor de retorno es 0xFFFFFFFF y la función GetLastError devolverá un valor distinto de NO_ERROR.
Observaciones
No se puede usar la función GetFileSize con un manipulador de un dispositivo que no admita posicionamiento como una tubería (pipe) o un dispositivo de comunicaciones. Para determinar el tipo de fichero de hFile, usar la función GetFileType.
La función GetFileSize obtiene el tamaño descomprimido de un fichero. Para obtener el tamaño comprimido de un fichero usar la función GetCompressedFileSize.
Nota: hay que tener en cuenta que si el valor retornado es 0xFFFFFFFF y el parámetro lpFileSizeHigh no es NULL, la aplicación debe llamar a GetLastError para determinar si la función ha tenido éxito o ha fallado. El siguiente ejemplo ilustra este caso:
// // Caso Uno: llamando a la función con // lpFileSizeHigh == NULL // Tratar de obtener el tamaño del fichero hFile dwSize = GetFileSize (hFile, NULL) ; // Si hemos fallado ... if (dwSize == 0xFFFFFFFF) { // Obtener el código de error. dwError = GetLastError() ; // Tratamiento de errores. . . . } // Final de manipulación de errores // // Caso Dos: llamando a la función con // lpFileSizeHigh != NULL // Intentar obtener el tamaño del fichero grande hFile. dwSizeLow = GetFileSize (hFile, & dwSizeHigh) ; // Si hemos fallado ... if (dwSizeLow == 0xFFFFFFFF && (dwError = GetLastError()) != NO_ERROR ) { // Tratamiento de errores. . . . } // Final de manipulación de errores