12 сент. 2010 г.

GetFileAttributes

Функция GetFileAttributes получает набор атрибутов файловой системы FAT для указанного файла или директории.

Для получения большего числа атрибутов, используйте функцию GetFileAttributesEx.


DWORD GetFileAttributes(
  LPCTSTR lpFileName
);

Параметры:
lpFileNameАдрес нульзаканчивающейся строки, которая определяет имя файла или директории.

В ANSI-версия этой функции, имя ограничено в MAX_PATH символов. Для увеличения этого предела до 32,767 широких символов, вызывайте Unicode-версию функции, добавив к пути "\\?\".

Windows Me/98/95:  Эта строка не должна превышать MAX_PATH символов.

Возвращаемые значения:
Если функция успешна, возвращаемое значение содержит атрибуты указанного файла или директории.

При ошибке, возвращается значение INVALID_FILE_ATTRIBUTES. Для получения дополнительной информации об ошибке, вызывайте GetLastError.

Атрибуты могут иметь одно или более следующих значений:
Значение:
Описание:
FILE_ATTRIBUTE_ARCHIVEФайл может быть заархивирован.

Приложение использует этот атрибут для пометки файлов для резервного копирования или перемещения.
FILE_ATTRIBUTE_COMPRESSEDФайл или директория сжат.

Для файлов, все данные в файле сжаты.

Для директории, сжатие происходит для всех новосозданных файлов и поддиректорий.
FILE_ATTRIBUTE_DEVICEЗарезервировано; не используется.
FILE_ATTRIBUTE_DIRECTORYДескриптор идентифицирует директорию.

Файл или директория зашифрован.

Для файла, все потоки данных в файле зашифрованы.

Для директории, шифрование происходит для всех новосозданных файлов и поддиректорий.
FILE_ATTRIBUTE_ENCRYPTEDФайл или директория зашифрован.

Для файла, все потоки данных в файле зашифрованы.

Для директории, шифрование происходит для всех новосозданных файлов и поддиректорий.
FILE_ATTRIBUTE_HIDDENФайл или директория спрятан. Это не распространяется к обычному содержанию директории.
FILE_ATTRIBUTE_NORMALФайл или директория, который не имеет других установленных атрибутов.

Этот атрибут действителен, если он используется одним.
FILE_ATTRIBUTE_NOT_CONTENT_INDEXEDФайл не индексируется контекстом сервиса индексирования.
FILE_ATTRIBUTE_OFFLINEДанные в файле не являются немедленно достижимыми.

Этот атрибут указывает, что данные файла физически перемещены на внешнее хранилище. Приложение не может произвольно изменять этот атрибут.
FILE_ATTRIBUTE_READONLYФайл или директория предназначены только для чтения.

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

Для директории, приложение не может удалять ее.
FILE_ATTRIBUTE_REPARSE_POINTФайл или директория, который имеет ассоциацию с reparse точкой.
FILE_ATTRIBUTE_SPARSE_FILEФайл, который является разреженным файлом
FILE_ATTRIBUTE_SYSTEMФайл или директория, который операционная система использует как часть себя, или использует внутренне.
FILE_ATTRIBUTE_TEMPORARYФайл будет использован для временного хранения.

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

Замечания:
Когда GetFileAttributes вызывется для директории, которая содержит точку монтирования раздела, возвращаемые файловые атрибуты являются атрибутами директории, к которой примонтирован раздел, а не атрибуты корневой директории в монтируемом разделе. Для получение атрибутов смонтированного раздела, вызовите GetVolumeNameForVolumeMountPoint, для получения имени раздела. Затем используйте это имя в вызове GetFileAttributes.

Если путь указывает символическую ссылку, функция возвращает атрибуты для этой символической ссылки.
Смотрите также:
DeviceIoControl, FindFirstFileFindNextFileGetFileAttributesEx, SetFileAttributes