Программирование для Windows NT

       

Получение информации о файле по его идентификатору


С помощью функции GetFileInformationByHandle вы сможете получить разнообразную информацию об открытом файле по его идентификатору:

BOOL GetFileInformationByHandle(

  HANDLE  hFile,                   // идентификатор файла

  LPBY_HANDLE_FILE_INFORMATION lpFileInformation ); // адрес

    // структуры, в которую будет записана информация о файле

Функция GetFileInformationByHandle записывает информацию о файле в структуру типа BY_HANDLE_FILE_INFORMATION, определенную следующим образом: 

typedef struct _BY_HANDLE_FILE_INFORMATION

  DWORD    dwFileAttributes;     // атрибуты файла

  FILETIME ftCreationTime;       // время создания файла

  FILETIME ftLastAccessTime;     // время доступа к файлу

  FILETIME ftLastWriteTime;      // время записи в файл

  DWORD    dwVolumeSerialNumber; // серийный номер тома

  DWORD    nFileSizeHigh;   // размер файла (старшее слово)

  DWORD    nFileSizeLow;    // размер файла (младшее слово)

  DWORD    nNumberOfLinks;       // количество связей файла

  DWORD    nFileIndexHigh;  // системный номер файла

                            // (старшее слово)

  DWORD    nFileIndexLow;   // системный номер файла

                            // (младшее слово)

} BY_HANDLE_FILE_INFORMATION;

Поле nNumberOfLinks используется приложениями в стандарте POSIX.

Что же касается системного номера файла, то он отличается от идентификатора файла, полученного при помощи функции CreateFile по смыслу и значению. Системные номера файлов являются глобальными и различаются для всех файлов, открытых в системе.



Содержание раздела