Поделиться через


Функция GetFileAttributesW (fileapi.h)

Извлекает атрибуты файловой системы для указанного файла или каталога.

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

Чтобы выполнить эту операцию как транзакцию, используйте функцию GetFileAttributesTransacted.

Синтаксис

DWORD GetFileAttributesW(
  [in] LPCWSTR lpFileName
);

Параметры

[in] lpFileName

Имя файла или каталога.

По умолчанию имя ограничено MAX_PATH символами. Чтобы расширить это ограничение до 32 767 расширенных символов, добавьте "\\?\" в путь. Дополнительные сведения см. в именовании файлов, путей и пространств имен.

Кончик

Начиная с Windows 10 версии 1607, вы можете отказаться от ограничения MAX_PATH без предустановки "\\?\". Дополнительные сведения см. в разделе "Ограничение максимальной длины пути" файлы именования, пути и пространства имен.

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

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

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

Замечания

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

При вызове GetFileAttributes для общей папки сети функция завершается ошибкой, а GetLastError возвращает ERROR_BAD_NETPATH. Необходимо указать путь к вложенной папке в этой общей папке.

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технологии Поддержанный
Протокол SMB 3.0 Да
Отработка отказа SMB 3.0 (TFO) Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Отказоустойчивая файловая система (ReFS) Да
 

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

операции с транзакцией

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

Примеры

Пример см. в разделе получения и изменения атрибутов файла.

Заметка

Заголовок fileapi.h определяет GetFileAttributes как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2003 [классические приложения | Приложения UWP]
целевая платформа Виндоус
заголовка fileapi.h (включая Windows.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

DeviceIoControl

Константы атрибутов файлов

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

FindFirstFile

FindNextFile

GetFileAttributesEx

GetFileAttributesTransacted

SetFileAttributes

символьные ссылки