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 |