Поделиться через


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

Извлекает фактическое количество байтов дискового хранилища, используемого для хранения указанного файла. Если файл находится на томе, поддерживающем сжатие, и файл сжимается, то полученное значение — сжатый размер указанного файла. Если файл расположен на томе, который поддерживает разреженные файлы, и файл является разреженным, то полученное значение — разреженный размер указанного файла.

Чтобы выполнить эту операцию как транзакцию, используйте функцию GetCompressedFileSizeTransacted.

Синтаксис

DWORD GetCompressedFileSizeA(
  [in]            LPCSTR  lpFileName,
  [out, optional] LPDWORD lpFileSizeHigh
);

Параметры

[in] lpFileName

Имя файла.

Не указывайте имя файла на неисключаемом устройстве, например канал или устройство связи, так как его размер файла не имеет смысла.

Этот параметр может включать путь.

По умолчанию имя ограничено MAX_PATH символами. Чтобы расширить это ограничение до 32 767 расширенных символов, добавьте "\\?\" в путь. Дополнительные сведения см. в именовании файлов, путей и пространств имен.

Кончик

Начиная с Windows 10 версии 1607, вы можете отказаться от ограничения MAX_PATH без предустановки "\\?\". Дополнительные сведения см. в разделе "Ограничение максимальной длины пути" файлы именования, пути и пространства имен.

[out, optional] lpFileSizeHigh

Высокий порядок DWORD сжатого размера файла. Возвращаемое значение функции — это низкий порядок DWORD размера сжатого файла.

Этот параметр может быть NULL, если DWORD высокого порядка размера сжатого файла не требуется. Файлы размером менее 4 гигабайт не требуются DWORD.

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

Если функция выполнена успешно, Возвращаемое значение — это низкий порядок DWORD фактического количества байтов дискового хранилища, используемого для хранения указанного файла, и если lpFileSizeHigh неNULL, функция помещает DWORD DWORD этого фактического значения в DWORD, на которые указывает этот параметр. Это сжатый размер файла для сжатых файлов, фактический размер файла для некомпрессированных файлов.

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

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

Замечания

Приложение может определить, сжимается ли том путем вызова GetVolumeInformation, а затем проверки состояния флага FS_VOL_IS_COMPRESSED в значении D WORD , указываемом на значение lpFileSystemFlags этой функции.

Если файл не находится на томе, который поддерживает сжатие или разреженные файлы, или если файл не сжимается или разреженный файл, то полученное значение — фактический размер файла, то же самое, что и значение, возвращаемое вызовом GetFileSize.

Поведение символьной ссылки— если путь указывает на символьную ссылку, функция возвращает размер файла целевого объекта.

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

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

Заметка

Заголовок fileapi.h определяет GetCompressedFileSize как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка fileapi.h (включая Windows.h, WinBase.h, Fileapi.h, Windows.h, WinBase.h, Fileapi.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

сжатия файлов и декомпрессии

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

GetCompressedFileSizeTransacted

GetFileSize

GetVolumeInformation

символьные ссылки