Função GetFileSize (fileapi.h)

Recupera o tamanho do arquivo especificado, em bytes.

É recomendável que você use GetFileSizeEx.

Sintaxe

DWORD GetFileSize(
  [in]            HANDLE  hFile,
  [out, optional] LPDWORD lpFileSizeHigh
);

Parâmetros

[in] hFile

Um manipulador para o arquivo.

[out, optional] lpFileSizeHigh

Um ponteiro para a variável em que a palavra dupla de alta ordem do tamanho do arquivo é retornada. Esse parâmetro poderá ser NULL se o aplicativo não exigir a palavra dupla de alta ordem.

Valor retornado

Se a função for bem-sucedida, o valor retornado será a palavra dupla de baixa ordem do tamanho do arquivo e, se lpFileSizeHigh for não NULL, a função colocará a palavra dupla de alta ordem do tamanho do arquivo na variável apontada por esse parâmetro.

Se a função falhar e lpFileSizeHigh for NULL, o valor retornado será INVALID_FILE_SIZE. Para obter informações de erro estendidas, chame GetLastError. Quando lpFileSizeHigh for NULL, os resultados retornados para arquivos grandes serão ambíguos e você não poderá determinar o tamanho real do arquivo. É recomendável que você use GetFileSizeEx .

Se a função falhar e lpFileSizeHigh não for NULL, o valor retornado será INVALID_FILE_SIZE e GetLastError retornará um valor diferente de NO_ERROR.

Comentários

Você não pode usar a função GetFileSize com um identificador de um dispositivo que não está em busca, como um pipe ou um dispositivo de comunicação. Para determinar o tipo de arquivo para hFile, use a função GetFileType .

A função GetFileSize recupera o tamanho não compactado de um arquivo. Use a função GetCompressedFileSize para obter o tamanho compactado de um arquivo.

Observe que, se o valor retornado for INVALID_FILE_SIZE (0xffffffff), um aplicativo deverá chamar GetLastError para determinar se a função foi bem-sucedida ou falhou. O motivo pelo qual a função pode parecer falhar quando não tem é que lpFileSizeHigh pode ser não NULL ou o tamanho do arquivo pode ser 0xffffffff. Nesse caso, GetLastError retornará NO_ERROR (0) após o sucesso. Devido a esse comportamento, é recomendável que você use GetFileSizeEx .

Operações transacionadas: Se houver uma transação associada ao identificador de arquivo, a função retornará informações para a exibição de arquivo isolado.

No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 Sim
TFO (Failover transparente) do SMB 3.0 Sim
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) Sim
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim
 

Exemplos

Para obter um exemplo, consulte Criando uma exibição dentro de um arquivo.

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho fileapi.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Funções de gerenciamento de arquivos

GetCompressedFileSize

GetFileSizeEx

GetFileType