Função SetEndOfFile (fileapi.h)

Define o tamanho do arquivo físico para o arquivo especificado como a posição atual do ponteiro do arquivo.

O tamanho do arquivo físico também é conhecido como o final do arquivo. A função SetEndOfFile pode ser usada para truncar ou estender um arquivo. Para definir o final lógico de um arquivo, use a função SetFileValidData .

Sintaxe

BOOL SetEndOfFile(
  [in] HANDLE hFile
);

Parâmetros

[in] hFile

Um identificador para o arquivo a ser estendido ou truncado.

O identificador de arquivo deve ser criado com o direito de acesso GENERIC_WRITE . Para obter mais informações, consulte Segurança de arquivo e direitos de acesso.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será 0 (zero). Para obter informações de erro estendidas, chame GetLastError.

Comentários

A função SetEndOfFile pode ser usada para truncar ou estender um arquivo. Se o arquivo for estendido, o conteúdo do arquivo entre a extremidade antiga do arquivo e a nova extremidade do arquivo não será definido.

Cada fluxo de arquivos tem o seguinte:

  • Tamanho do arquivo: o tamanho dos dados em um arquivo, para o byte.
  • Tamanho da alocação: o tamanho do espaço alocado para um arquivo em um disco, que é sempre um múltiplo par do tamanho do cluster.
  • Comprimento de dados válido: o comprimento dos dados em um arquivo que é realmente gravado, no byte. Esse valor é sempre menor ou igual ao tamanho do arquivo.
A função SetEndOfFile define o tamanho do arquivo. Use SetFileValidData para definir o comprimento de dados válido.

If
CreateFileMapping é chamado para criar um objeto de mapeamento de arquivo para hFile, UnmapViewOfFile deve ser chamado primeiro para desmapear todos os modos de exibição e chamar CloseHandle para fechar o objeto de mapeamento de arquivo antes que você possa chamar SetEndOfFile.

Operações transacionadas

Se houver uma transação associada ao identificador, a alteração na posição final do arquivo será transacionada.

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

Requisitos

   
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho fileapi.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

CloseHandle

CreateFile

CreateFileMapping

Funções de gerenciamento de arquivos

SetFileInformationByHandle

SetFileValidData

Unmapviewoffile