Compartilhar via


Função GetCompressedFileSizeA (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 GetCompressedFileSizeA(
  [in]            LPCSTR  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 seja de navegação, como um pipe ou um dispositivo de comunicação, pois seu tamanho de arquivo não tem significado.

Esse parâmetro pode incluir o caminho.

Por padrão, o nome é limitado a MAX_PATH caracteres. Para estender esse limite para 32.767 caracteres de largura, acrescente "\\?\" ao caminho. Para obter mais informações, consulte Arquivos de Nomenclatura, Caminhos e Namespaces.

Ponta

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 do 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 doDWORD de alta ordem.

Valor de retorno

Se a função for bem-sucedida, o valor retornado é 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 forNULL, 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 estiver 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 forNULL, 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).

Observações

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

Se o arquivo não estiver localizado em um volume compatível com 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 de vínculo — se o caminho apontar para um link simbólico, a função retornará o tamanho do arquivo do destino.

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

Tecnologia Suportado
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
 

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho fileapi.h (incluem Windows.h, WinBase.h, Fileapi.h, Windows.h, WinBase.h, Fileapi.h)
biblioteca Kernel32.lib
de DLL Kernel32.dll

Consulte também

de compactação e descompactação de arquivos

Funções de gerenciamento de arquivos

GetCompressedFileSizeTransacted

GetFileSize

GetVolumeInformation

links simbólicos