PureBasic

GetFileAttributes()

Синтаксис

Attributes = GetFileAttributes(Filename$)

Описание


Возвращает атрибуты указанного файла (или каталога).

Параметры

Filename$ Имя файла (включая путь), атрибуты которого требуется получить. Это имя так же может принадлежать каталогу.

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

Возвращает атрибуты файла. Если файл не существует, или атрибуты не могут быть прочитаны, результатом будет значение -1.

В Windows атрибуты представляют собой комбинацию следующих значений:
  #PB_FileSystem_Hidden    : Файл скрытый
  #PB_FileSystem_Archive   : Файл архивировался и не был изменён с того момента
  #PB_FileSystem_Compressed: Файл сжатый
  #PB_FileSystem_Normal    : Обычные атрибуты
  #PB_FileSystem_ReadOnly  : Файл в режиме только для чтения
  #PB_FileSystem_System    : Файл системный
В Linux или MacOSX атрибуты представляют собой комбинацию следующих значений:
  #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

Все

<- GetExtensionPart() - Оглавление FileSystem - GetFileDate()->