GetFileAttributes()
Синтаксис
Attributes = GetFileAttributes(Filename$)
Описание
Возвращает атрибуты указанного файла (или каталога).
Параметры
Filename$ Имя файла (включая путь), атрибуты которого требуется получить. Это имя так же может принадлежать каталогу.
Возвращаемое значение
Возвращает атрибуты файла. Если файл не существует, или атрибуты не могут быть прочитаны, результатом будет значение -1.В Linux или MacOSX атрибуты представляют собой комбинацию следующих значений:
В Windows атрибуты представляют собой комбинацию следующих значений:#PB_FileSystem_Hidden : Файл скрытый #PB_FileSystem_Archive : Файл архивировался и не был изменён с того момента #PB_FileSystem_Compressed: Файл сжатый #PB_FileSystem_Normal : Обычные атрибуты #PB_FileSystem_ReadOnly : Файл в режиме только для чтения #PB_FileSystem_System : Файл системный
#PB_FileSystem_Link : Файл является символической ссылкой #PB_FileSystem_ReadUser : разрешён доступ для чтения файла владельцу файла #PB_FileSystem_WriteUser : разрешён доступ для записи файла владельцу файла #PB_FileSystem_ExecUser : разрешён доступ для запуска файла владельцу файла #PB_FileSystem_ReadGroup : разрешён доступ для чтения файла группе владельца файла #PB_FileSystem_WriteGroup: разрешён доступ для записи файла группе владельца файла #PB_FileSystem_ExecGroup : разрешён доступ для запуска файла группе владельца файла #PB_FileSystem_ReadAll : разрешён доступ для чтения файла для всех остальных пользователей #PB_FileSystem_WriteAll : разрешён доступ для записи файла для всех остальных пользователей #PB_FileSystem_ExecAll : разрешён доступ для запуска файла для всех остальных пользователей
Комментарии
Чтобы проверить, установлен ли какой-либо атрибут, используйте операцию '&' (двоичное И) и соответствующую атрибуту константу:FileAttributes = GetFileAttributes("C:\Text.txt") If FileAttributes & #PB_FileSystem_Hidden Debug "Этот файл скрыт!" EndIf
Пример
Value = GetFileAttributes("c:\autoexec.bat") If Value = -1 Debug "Ошибка чтения атрибутов файла!" Else If Value & #PB_FileSystem_Hidden : txt$ + "H" : Else : txt$+"-" : EndIf If Value & #PB_FileSystem_Archive : txt$ + "A" : Else : txt$+"-" : EndIf If Value & #PB_FileSystem_Compressed : txt$ + "C" : Else : txt$+"-" : EndIf If Value & #PB_FileSystem_Normal : txt$ + "N" : Else : txt$+"-" : EndIf If Value & #PB_FileSystem_ReadOnly : txt$ + "R" : Else : txt$+"-" : EndIf If Value & #PB_FileSystem_System : txt$ + "S" : Else : txt$+"-" : EndIf Debug txt$ EndIf
Пример (Фран)
Repertoire$ = GetHomeDirectory() ; Создаёт перечисление всех файлов и папок домашнего каталога. If ExamineDirectory(0, Repertoire$, "*.*") While NextDirectoryEntry(0) If DirectoryEntryType(0) = #PB_DirectoryEntry_File Type$ = " [Файл] " Size$ = " (Размер : " + DirectoryEntrySize(0) + ")" Attributs = GetFileAttributes(DirectoryEntryName(0)) If Attributs & #PB_FileSystem_System Debug "Атрибут : Системный" EndIf Else Type$ = " [Каталог] " Size$ = "" ; Для каталога размер напрямую не определяется. Attributs = DirectoryEntryAttributes(0) If Attributs & #PB_FileSystem_System Debug "Атрибут : Системный" EndIf EndIf Debug Type$ + DirectoryEntryName(0) + Size$ Wend FinishDirectory(0) EndIf
См. также
SetFileAttributes(), DirectoryEntryAttributes()
Поддерживаемые OS
Все