Функция SetFileValidData

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

Эта функция устанавливает логический конец файла. Чтобы установить физический конец файла, используйте функцию SetEndOfFile.

Синтаксис

BOOL SetFileValidData(
  HANDLE hFile,
  LONGLONG ValidDataLength
);

Параметры

hFile

[in] Дескриптор файла. Файл должен быть открыт с правом доступа GENERIC_WRITE. Для получения дополнительной информации, см. статью Защита файла и права доступа.

Файл не может быть сжатым или разреженным.

ValidDataLength

[in] Новая правильная длина данных файла. Этим параметром должно быть положительное значение, которое больше, чем текущая правильная длина данных, но меньше, чем текущий размер файла.

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

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

Если функция завершается ошибкой, величина возвращаемого значения - нуль. Чтобы получить дополнительные данные об ошибке, вызовите  GetLastError.

Замечания

Вызывающая программа должна иметь привилегию SE_MANAGE_VOLUME_NAME. Для получения дополнительной информации, см. статью Запуск со специальными привилегиями.

Каждый поток файла имеет значение, которое обозначает его физический конец и значение, которое обозначает его логический конец. Область между физическими и логическими концами потока известна как хвост файла. По умолчанию, эти значения являются одинаковыми, и хвост файла потока имеет размер нуль байтов. Прочитанные байты из хвоста файла возвращаются как нули. Запись в хвост файла автоматически увеличивает логический конец файла до конца расположения операции записи.

Windows 2000:  Система может дефрагментировать только допустимую длину данных файла.

Приложения могут найти полезным, чтобы установить правильную длину данных в нижеследующих сценариях:

Смотри также 

Обзор Управление файламиФункции, используемые в управлении файлами, SetEndOfFile

Размещение и совместимость SetFileValidData

К

Windows XP

Да 

л

Windows 2000

Нет

и

Windows NT

Нет

е

Windows Me

Нет

н

Windows 98

Нет

т

Windows 95

Нет

 
С

Windows Server 2003

Да

е Windows 2000 Server Нет
р Windows NT Server Нет
в    
е    
р    

Используемая библиотека

Kernel32.lib

Используемая DLL -
Заголовочный файл  

- объявлено в

Winbase.h

 - включено в

Windows.h

 Unicode

Нет

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz