Функция 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 |
Нет |
|
Замечания по платформе |
Не имеется |