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
Valor de retorno
Se a função for bem-sucedida, o valor retornado é o
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