Função GetCompressedFileSizeW (fileapi.h)

Recupera o número real de bytes de armazenamento em disco usados para armazenar um arquivo especificado. Se o arquivo estiver localizado em um volume que dê suporte à compactação e o arquivo for compactado, o valor obtido será o tamanho compactado do arquivo especificado. Se o arquivo estiver localizado em um volume que dê suporte a arquivos esparsos e o arquivo for um arquivo esparso, o valor obtido será o tamanho esparso do arquivo especificado.

Para executar essa operação como uma operação transacionada, use a função GetCompressedFileSizeTransacted .

Sintaxe

DWORD GetCompressedFileSizeW(
  [in]            LPCWSTR lpFileName,
  [out, optional] LPDWORD lpFileSizeHigh
);

Parâmetros

[in] lpFileName

O nome do arquivo.

Não especifique o nome de um arquivo em um dispositivo que não esteja em busca, como um pipe ou um dispositivo de comunicação, pois seu tamanho de arquivo não tem nenhum significado.

Esse parâmetro pode incluir o caminho.

Por padrão, o nome é limitado a caracteres MAX_PATH. Para estender esse limite para 32.767 caracteres largos, preencha "\\?\" para o caminho. Para obter mais informações, confira Nomear arquivos, caminhos e namespaces.

Dica

A partir do Windows 10, versão 1607, você pode optar por remover a limitação de MAX_PATH sem acrescentar "\\?\". Consulte a seção "Limitação máxima de comprimento do caminho" de Arquivos de Nomenclatura, Caminhos e Namespaces para obter detalhes.

[out, optional] lpFileSizeHigh

O DWORD de alta ordem do tamanho do arquivo compactado. O valor retornado da função é o DWORD de baixa ordem do tamanho do arquivo compactado.

Esse parâmetro poderá ser NULL se o DWORD de alta ordem do tamanho do arquivo compactado não for necessário. Arquivos com menos de 4 gigabytes de tamanho não precisam do DWORD de alta ordem.

Retornar valor

Se a função for bem-sucedida, o valor retornado será o DWORD de baixa ordem do número real de bytes de armazenamento em disco usados para armazenar o arquivo especificado e, se lpFileSizeHigh não for NULL, a função colocará a DWORD de alta ordem desse valor real no DWORD apontado por esse parâmetro. Esse é o tamanho do arquivo compactado para arquivos compactados, o tamanho real do arquivo para arquivos não compactados.

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.

Se o valor retornado for INVALID_FILE_SIZE e lpFileSizeHigh não for NULL, um aplicativo deverá chamar GetLastError para determinar se a função foi bem-sucedida (o valor é NO_ERROR) ou falhou (o valor é diferente de NO_ERROR).

Comentários

Um aplicativo pode determinar se um volume é compactado chamando GetVolumeInformation e verificando o status do sinalizador FS_VOL_IS_COMPRESSED no valor DWORD apontado pelo parâmetro lpFileSystemFlags dessa função.

Se o arquivo não estiver localizado em um volume que dê suporte à compactação ou arquivos esparsos ou se o arquivo não for compactado ou um arquivo esparso, o valor obtido será o tamanho real do arquivo, o mesmo que o valor retornado por uma chamada para GetFileSize.

Comportamento simbólico do link – se o caminho apontar para um link simbólico, a função retornará o tamanho do arquivo do destino.

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

Tecnologia Com suporte
Protocolo SMB (Bloco de Mensagens do Servidor) 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 de cluster (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim
 

Observação

O cabeçalho fileapi.h define GetCompressedFileSize como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

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 (incluem Windows.h, WinBase.h, Fileapi.h, Windows.h, WinBase.h, Fileapi.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Compactação e descompactação de arquivos

Funções de gerenciamento de arquivos

GetCompressedFileSizeTransacted

Getfilesize

GetVolumeInformation

Links simbólicos