Функция GetFileSize (fileapi.h)
Извлекает размер указанного файла в байтах.
Рекомендуется использовать GetFileSizeEx.
Синтаксис
DWORD GetFileSize(
[in] HANDLE hFile,
[out, optional] LPDWORD lpFileSizeHigh
);
Параметры
[in] hFile
Дескриптор файла.
[out, optional] lpFileSizeHigh
Указатель на переменную, в которой возвращается двойное слово высокого порядка размера файла. Этот параметр может иметь значение NULL , если приложению не требуется двойное слово высокого порядка.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение является двойным словом нижнего порядка размера файла, а если значение lpFileSizeHigh не равно NULL, функция помещает двойное слово высокого порядка размера файла в переменную, на которую указывает этот параметр.
Если функция завершается сбоем и lpFileSizeHigh имеет значение NULL, возвращаемое значение будет INVALID_FILE_SIZE. Дополнительные сведения об ошибке можно получить, вызвав GetLastError. Если lpFileSizeHigh имеет значение NULL, результаты, возвращаемые для больших файлов, являются неоднозначными, и вы не сможете определить фактический размер файла. Вместо этого рекомендуется использовать GetFileSizeEx .
Если функция завершается сбоем и значение lpFileSizeHigh не равно NULL, возвращаемое значение будет INVALID_FILE_SIZE и GetLastError вернет значение, отличное от NO_ERROR.
Комментарии
Функцию GetFileSize нельзя использовать с дескриптором устройства, не являющегося частью, например с каналом или устройством связи. Чтобы определить тип файла для hFile, используйте функцию GetFileType .
Функция GetFileSize извлекает несжатый размер файла. Используйте функцию GetCompressedFileSize , чтобы получить сжатый размер файла.
Обратите внимание, что если возвращаемое значение равно INVALID_FILE_SIZE (0xffffffff), приложение должно вызвать Метод GetLastError , чтобы определить, выполнена ли функция успешно или не удалось. Если функция не работает, может показаться, что lpFileSizeHigh может иметь значение, отличное от NULL , или размер файла может быть 0xffffffff. В этом случае GetLastError возвращает NO_ERROR (0) после успешного выполнения. Из-за этого рекомендуется использовать GetFileSizeEx .
Транзакция операций: Если к дескрипторе файла привязана транзакция, функция возвращает сведения для изолированного представления файла.
В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.
Технология | Поддерживается |
---|---|
Протокол SMB 3.0 | Да |
SMB 3.0 Transparent Failover (TFO) | Да |
SMB 3.0 с масштабируемыми общими папками (SO) | Да |
Файловая система общего тома кластера (CSVFS) | Да |
Восстанавливаемая файловая система (ReFS) | Да |
Примеры
Пример см. в разделе Создание представления в файле.
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | fileapi.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |