Getting Information About Files
The GetFileInformationByHandle function retrieves information about a file and stores it in a structure of type BY_HANDLE_FILE_INFORMATION. This information includes creation time, file size, and attributes.
Eight characteristics called attributes may be associated with a file. The attributes can be one or more of the following values.
Value | Meaning |
FILE_ATTRIBUTE_ARCHIVE | The file or directory is an archive file. Applications use this value to mark files for backup or removal. |
FILE_ATTRIBUTE_COMPRESSED | The file or directory is compressed. For a file, this means that all of the data in the file is compressed. For a directory, this means that compression is the default for newly created files and subdirectories. |
FILE_ATTRIBUTE_DIRECTORY | This is a directory. |
FILE_ATTRIBUTE_HIDDEN | The file or directory is hidden. It is not included in an ordinary directory listing. |
FILE_ATTRIBUTE_NORMAL | The file or directory has no other attributes set. This value is valid only if used alone. |
FILE_ATTRIBUTE_OFFLINE | The data of the file is not immediately available. Indicates that the file data has been physically moved to offline storage. |
FILE_ATTRIBUTE_READONLY | The file or directory is read-only. Applications can read the file but cannot write to it or delete it. In the case of a directory, applications cannot delete it. |
FILE_ATTRIBUTE_SYSTEM | The file or directory is part of the operating system or is used exclusively by the operating system. |
FILE_ATTRIBUTE_TEMPORARY | The file is being used for temporary storage. File systems attempt to keep all of the data in memory for quicker access rather than flushing the data back to mass storage. A temporary file should be deleted by the application as soon as it is no longer needed.. |
An application can retrieve and set file attributes by using the GetFileAttributes, GetFileAttributesEx, and SetFileAttributes functions. These attributes can also be used in the CreateFile function. Applications cannot, however, use CreateFile or SetFileAttributes to set the directory attribute, because files cannot be converted into directories. For more information, see Directory Operations. It is also not possible to use SetFileAttributes to set the compressed attribute. For information, see File Compression.
The GetFileType function returns the type of a file: disk, character (such as a console), pipe, or unknown. The GetBinaryType function determines whether a file is executable, and if so, what type of executable file it is. The GetFileSize function returns the size of a file.
Applications can retrieve and set the date and time a file was created, last modified, or last accessed by using the GetFileTime and SetFileTime functions. For more information about file times, see Time.