Функция 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

См. также

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

GetCompressedFileSize

GetFileSizeEx

GetFileType