Partilhar via


Estado de compactação

Cada arquivo e diretório em um volume que dá suporte à compactação para arquivos e diretórios individuais tem um estado de compactação.

Enquanto o atributo de compactação de um arquivo ou diretório indica simplesmente se o arquivo ou diretório está compactado ou não, o estado de compactação também especifica o formato de qualquer dado compactado.

Use o código de controle FSCTL_GET_COMPRESSION para determinar o estado de compactação de um arquivo ou diretório.

O estado de compactação é codificado como um valor de 16 bits. Um valor de estado de compactação de COMPRESSION_FORMAT_NONE indica que um arquivo não está compactado. Um valor de COMPRESSION_FORMAT_DEFAULT indica que um arquivo é compactado, usando o formato de compactação padrão. Qualquer outro valor indica que um arquivo é compactado, usando o formato de compactação especificado pelo valor do estado de compactação.

Use o código de controle FSCTL_SET_COMPRESSION para definir o estado de compactação de um arquivo ou diretório. Essa operação também define o atributo de compactação do arquivo ou diretório.

Definir o estado de compactação de um arquivo como um valor diferente de zero compacta o arquivo, usando o formato de compactação codificado pelo valor do estado de compactação. Definir o estado de compactação de um arquivo como zero descompacta o arquivo. Essas são operações síncronas. O arquivo é compactado ou descompactado imediatamente quando você define seu estado de compactação.

Definir o estado de compactação de um diretório não causa compactação ou descompactação imediata. Em vez disso, definir o estado de compactação de um diretório define um estado de compactação padrão que será fornecido a todos os arquivos e subdiretórios recém-criados.