Функция SetEndOfFile (fileapi.h)

Задает размер физического файла для указанного файла в соответствии с текущей позицией указателя файла.

Физический размер файла также называется концом файла. Функцию SetEndOfFile можно использовать для усечения или расширения файла. Чтобы задать логический конец файла, используйте функцию SetFileValidData .

Синтаксис

BOOL SetEndOfFile(
  [in] HANDLE hFile
);

Параметры

[in] hFile

Дескриптор файла для расширения или усечения.

Дескриптор файла должен быть создан с правом доступа GENERIC_WRITE . Дополнительные сведения см. в разделе Безопасность файлов и права доступа.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция завершается ошибкой, возвращаемое значение равно нулю (0). Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Функцию SetEndOfFile можно использовать для усечения или расширения файла. Если файл расширен, содержимое файла между старым и новым концами файла не определяется.

Каждый файловый поток имеет следующее:

  • Размер файла: размер данных в файле до байта.
  • Размер выделения: размер пространства, выделенного для файла на диске, который всегда кратен размеру кластера.
  • Допустимая длина данных: длина данных в файле, который фактически записан в байт. Это значение всегда меньше или равно размеру файла.
Функция SetEndOfFile задает размер файла. Используйте SetFileValidData , чтобы задать допустимую длину данных.

If
CreateFileMapping вызывается для создания объекта сопоставления файлов для hFile. Сначала необходимо вызвать UnmapViewOfFile , чтобы отменить сопоставление всех представлений, и вызвать CloseHandle , чтобы закрыть объект сопоставления файлов, прежде чем можно будет вызвать SetEndOfFile.

Транзакция операций

Если к дескрипторе привязана транзакция, то выполняется транзакция изменения в позиции конца файла.

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
SMB 3.0 Transparent Failover (TFO) Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header fileapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

CloseHandle

CreateFile

CreateFileMapping

Функции управления файлами

SetFileInformationByHandle

SetFileValidData

UnmapViewOfFile