Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Извлекает размер указанного файла в байтах.
Рекомендуется использовать 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 |