Функция GetFileSize


Функция GetFileSize извлекает размер указанного файла. Размер файла, который может быть сообщен при помощи этой функции ограничивается значением двойного слова (DWORD).

Чтобы извлечь размер файла, который является большим, чем значение двойного слова (DWORD), используйте функцию GetFileSizeEx.

Синтаксис

DWORD GetFileSize(
  HANDLE hFile,           // дескриптор файла
  LPDWORD lpFileSizeHigh  // старшее слово размера файла
);

Параметры

hFile

[in] Дескриптор файла, размер которого должен возвратиться. Этот дескриптор должен быть создан или с правом доступа GENERIC_READ или GENERIC_WRITE. Для получения дополнительной информации, см. статью Защита файла и права доступа.

lpFileSizeHigh

[out] Указатель на переменную, в которой возвращается старшее слово размера файла . Этот параметр может быть ПУСТО (NULL), если приложению не требуется старшего слова.

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

Если функция завершается успешно, возвращаемое значение - младшая часть двойного слова размера файла, и если параметр lpFileSizeHigh - не ПУСТО (NULL), функция помещает старшую часть двойного слова размера файла в переменную, на которую указывает этот параметр.

Если функция завершается ошибкой, и lpFileSizeHigh равен ПУСТО (NULL), возвращаемое значение - INVALID_FILE_SIZE. Чтобы получить дополнительные данные об ошибке, вызовите GetLastError.

Если функция завершается ошибкой, и lpFileSizeHigh - не ПУСТО (NULL), возвращаемое значение - INVALID_FILE_SIZE, а GetLastError возвратит другое значение, а не NO_ERROR.

Замечания

Нельзя использовать функцию GetFileSize с дескриптором не искомого устройства  типа канала или коммуникационного устройства. Чтобы выяснить тип файла для параметра hFile, используйте функцию GetFileType.

Функция GetFileSize извлекает несжатый размер файла. Используйте функцию GetCompressedFileSize, чтобы получить сжатый размер файла.

Обратите внимание! на то, что это, если возвращаемое значение - INVALID_FILE_SIZE и параметр lpFileSizeHigh - не ПУСТО (NULL), приложение должно вызвать GetLastError, чтобы выяснить, успешно ли завершилась функция или завершилась ошибкой. Причина, по которой функция, может оказаться завершенной ошибкой, состоит в том, что lpFileSizeHigh может быть не-ПУСТО (NULL), или размер файла мог быть 0xffffffff. В этой ситуации, GetLastError возвратит NO_ERROR после успешного завершения. Нижеследующий типовой код иллюстрирует этот момент:
Код примера
// Случай первый: вызываемая функция с 
//           lpFileSizeHigh == NULL 
 
// Попробуем получить размер hFile. 
dwSize = GetFileSize (hFile, NULL) ; 
 
// Если мы получаем ошибку ... 
if (dwSize == INVALID_FILE_SIZE) 
{ 
    // Получим код ошибки. 
    dwError = GetLastError() ; 
 
    // Разберемся с этой ошибкой. 
    . 
    . 
    . 
 
    } // Закончим обработку ошибки. 
 
 
// 
// Случай второй: вызываемая функция с 
//           lpFileSizeHigh != NULL 
 
// Попробуем получить огромный размер hFile. 
dwSizeLow = GetFileSize (hFile, & dwSizeHigh) ; 
 
// Если мы получаем ошибку ... 
if (dwSizeLow == INVALID_FILE_SIZE 
    && 
    (dwError = GetLastError()) != NO_ERROR )
{ 
    // Разберемся с этой ошибкой. 
    . 
    . 
    . 
 
    } // Закончим обработку ошибки. 

Другой пример, см. Создание представления  данных внутри файла.

Смотри также 

Обзор Управление файламиФункции, используемые в управлении файлами, GetCompressedFileSize, GetFileSizeEx, GetFileType

Размещение и совместимость GetFileSize

К

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

Нет

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz