Функция GetCompressedFileSize извлекает данные о фактическом числе байтов запоминающего устройства на диске, который сохраняет указанный файл. Если файл расположен на томе, который поддерживает сжатие и файл сжатый, получаемое значение - сжатый размер указанного файла. Если файл расположен на томе, который поддерживает разреженные файлы и файл - разреженный файл, получаемое значение - размер разреженного указанного файла.
Синтаксис
DWORD GetCompressedFileSize( LPCTSTR lpFileName, // имя файла LPDWORD lpFileSizeHigh // старшее DWORD размера файла ); |
Параметры
lpFileName
[in] Указатель на символьную строку с нулем в конце, которая определяет имя файла.
Не определяйте имя файла на не разыскиваемом устройстве, типа канала (абстрактного файла или коммуникационного устройства, поскольку размер его файла не имеет никакого значения. |
lpFileSizeHigh
[out] Указатель на переменную, которая принимает старшее двойное слово (DWORD) сжатого размера файла. Возвращаемое значение функции - младшее двойное слово (DWORD) размера сжатого файла.Этот параметр может быть ПУСТО (NULL), если старшее двойное слово (DWORD) сжатого размера файла не нужно. Файлы размером меньше чем 4 гигабайта в старшем двойном слове (DWORD) не нуждаются.
Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - младшее двойное слово (DWORD) фактического числа байтов дискового накопителя, который хранит указанный файл, а если параметр lpFileSizeHigh - не - ПУСТО (NULL), функция помещает старшее двойное слово (DWORD) этого фактического значения в двойное слово (DWORD), на которое указывает тот параметр. Это - сжатый размер файла для сжатых файлов, действительный размер файла для несжатых файлов.
Если функция завершается ошибкой, а параметр lpFileSizeHigh равен ПУСТО (NULL), возвращаемое значение - INVALID_FILE_SIZE. Чтобы получить дополнительные данные об ошибке, вызовите GetLastError.
Если возвращаемое значение - INVALID_FILE_SIZE, а параметр lpFileSizeHigh - не ПУСТО (NULL), приложение должно вызвать GetLastError, чтобы выяснить, успешно ли завершилась функция (значение - NO_ERROR), или завершилась ошибкой (значение другое, а не NO_ERROR).
Замечания
Приложение может выяснить сжимается ли том при помощи вызова функции GetVolumeInformation, затем проверяет состояние флажка FS_VOL_IS_COMPRESSED в значении двойного слова (DWORD), на которое указывает параметр lpFileSystemFlags этой функции.
Если файл не расположен на томе, который поддерживает сжатие или разреженные файлы, или, если файл не сжат или разреженный файл, полученное значение - реальный размер файла, такое же как и значение, возвращенное вызовом к GetFileSize.
Смотри также
Обзор Управление файлами, Функции, используемые в управлении файлами, GetFileSize, GetVolumeInformation
Размещение и совместимость GetCompressedFileSize |
||
К |
Windows XP |
Да |
л |
Windows 2000 Professional |
Да |
и |
Windows NT Workstation |
Да |
е |
Windows Me |
Нет |
н |
Windows 98 |
Нет |
т |
Windows 95 |
Нет |
С |
Windows Server 2003 |
Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да |
в | ||
е | ||
р | ||
Используемая библиотека |
Kernel32.lib |
|
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в |
Winbase.h |
|
- включено в |
Windows.h |
|
Unicode |
Реализуется как версии Unicode и ANSI. |
|
Замечания по платформе |
Не имеется |