Функция 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 | Да |
Прозрачная отработка отказа (TFO) SMB 3.0 | Да |
SMB 3.0 с масштабируемыми общими папками (SO) | Да |
Файловая система общего тома кластера (CSVFS) | Да |
Восстанавливаемая файловая система (ReFS) | Да |
Поведение символьной ссылки— если путь указывает на символьную ссылку, функция возвращает атрибуты для символьной ссылки.
Транзакция операций
Если файл открыт для изменения в транзакции, ни один другой поток не может открыть файл для изменения, пока транзакция не будет зафиксирована. Таким образом, если транзакционный поток открывает файл первым, все последующие потоки, которые пытаются изменить файл до фиксации транзакции, получат нарушение общего доступа. Если поток без транзакций изменяет файл до того, как выполняется транзакция, и файл по-прежнему открыт, когда транзакция пытается открыть его, транзакция получает ошибку ERROR_TRANSACTIONAL_CONFLICT.Примеры
Пример см. в разделе Извлечение и изменение атрибутов файла.
Примечание
Заголовок fileapi.h определяет GetFileAttributes как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | fileapi.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |