что значит применение атрибутов

Что такое атрибут файла?

Список атрибутов файла в Windows

Атрибут файла (часто называемый атрибутом или флагом ) – это конкретное условие, при котором может существовать файл или каталог.

Атрибут считается установленным или очищенным в любой момент времени, что означает, что он либо включен, либо нет.

Компьютерные операционные системы, такие как Windows, могут помечать данные определенными атрибутами файлов, чтобы данные могли обрабатываться иначе, чем данные с отключенным атрибутом.

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

Каковы различные атрибуты файла?

В Windows существует ряд атрибутов файлов, включая следующие:

Следующие атрибуты файлов были впервые доступны для операционной системы Windows с файловой системой NTFS, то есть они недоступны в более старой файловой системе FAT:

Вот несколько дополнительных, хотя и более редких, атрибутов файлов, распознаваемых Windows:

Вы можете прочитать больше об этом на странице Константы файловых атрибутов Microsoft.

Почему используются атрибуты файла?

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

Изучение общих атрибутов файлов может помочь вам понять, почему определенные файлы и папки называются, например, «скрытыми» или «только для чтения», и почему взаимодействие с ними настолько отличается от взаимодействия с другими данными.

Применение атрибута файла только для чтения к файлу предотвратит его редактирование или изменение любым способом, если только атрибут не отменен, чтобы разрешить доступ для записи. Атрибут только для чтения часто используется с системными файлами, которые не следует изменять, но вы можете сделать то же самое с вашими собственными файлами, которые вы предпочли бы, чтобы кто-то, у кого есть доступ, не редактировал.

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

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

Атрибуты файла и атрибуты папки

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

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

Как применяются атрибуты файла

Хотя все доступные атрибуты для файла имеют общие имена, которые вы видели в списках выше, они не все применяются к файлу или папке одинаково.

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

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

Операционные системы Linux могут использовать команду chattr (Изменить атрибут) для установки атрибутов файла, в то время как chflags (Изменить флаги) используется в macOS.

Источник

Применение атрибутов в C#

В данном примере прошу обратить внимание, на два момента:
1. При использовании атрибутов «суффикс»: Attribute, можно не писать.
2. Фамилия и имя помечены атрибутом RequiredAttribute, а отчество нет.
Если мы с вами попробуем создать объект класса Person, то, как бы это обидно не звучало, мы его сможем создать с пустыми полями LastName и FirstName, т.к. этот атрибут ну совсем никак не влияет на поведение класса. Зачем тогда он? А мы им воспользуемся в форме добавления/редактирования человека, чтобы пользователь не мог закончить редактирование, пока эти поля не заполнены.
Общий вид приложения будет вот такой:

Для редактирования свойств человека воспользуемся UserControl (почему не формой чуть ниже):

В cs файл этого UserControl-а даже не лезем. Обратили внимание, на то, что Binding к источнику применяется по внешнему событию? [5]
На текущий момент, у нас уже есть класс описывающий бизнес-объект и компонент, для редактирования свойств этого объекта. Осталось сделать универсальное окно, которое сможет показывать компоненты для редактирования бизнес-объектов и будет проверять заполненность обязательных полей, а также, если все заполнено правильно, будет применять Binding визуальных компонентов к полям бизнес-объектов.
Создаем форму:

Читайте также:  Что лучше для дизайнера ips или va

Добавляем обработчик на кнопку отмена:

И самый интересный в данном примере обработчик кнопки принять:

Вроде в комментариях все подробно описал, единственно метод: GetChildTextBoxes, приводить не буду, он пробегает по визуальному дереву и выбирает все TextBox-ы. Кому интересно, может его посмотреть, скачав исходники.
Все. Прикручиваем на главной форме обработчики к кнопкам добавить и редактировать:

Ну и вот так это выглядит:


Исходники, если кто не увидел ссылки в тексте, можно скачать тут (Проект в VS 11, если что).

Источник

В windows пользователю доступны только четыре вида атрибутов, но система видит больше:

Как изменять файловые атрибуты с помощью attrib.exe?

Атрибуты можно устанавливать (+) или снимать (-). Чтобы атрибуты увидеть, нам придётся кликнуть по папке правой мышкой и выбрать Свойства.

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

Если вы желаете познакомиться с синтаксисом команд, можно набрать в консоли команд (cmd с правами админа) команду attrib /? и после нажатия клавиши ввода присмотритесь к экрану:

Вы увидите описанные выше мною команды по работе с атрибутами и последовательное написание синтаксиса для изменения атрибутов. Тоже самое можно проделывать прямо из-под проводника windows. Но мы же не ищем лёгких путей?

Кто заинтригован, читаем дальше.

Давайте потренируемся…

Давайте спрячем папку. Создайте новую папку на Рабочем столе и для облегчения задачи присвойте новое имя покороче, например, 1.

Щёлкните Свойства и в окне выберите СкрытыйПрименить. Если у вас в параметрах папок не выставлена функция отображения скрытых папок, значок папки немедленно исчезнет. Если функция активирована — ярлык папки станет прозрачным.

Чтобы изменить атрибуты через консоль, нужно:

Папка опять спряталась. Чтобы открыть её для просмотра (сделать видимой) без изменения свойств папки, повторите команду в консоли в точности, лишь поменяйте знак + (присвоить) на — (отменить).

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

Да, всякое бывает. Забыли название папки, но помните расположение… Или наоборот. Допустим, что у нас там на диске С: спрятано…? Впишите в консоли вот эту команду:

В текстовом файле немедленно сформируется список скрытых файлов и папок локального диска С. Не все они представляют интерес для пронырливого папы, однако к некоторым файлам, быть может, стоит присмотреться?

Источник

Автор: Алифанов Андрей
The RSDN Group

Опубликовано: 04.03.2001
Исправлено: 13.03.2005
Версия текста: 1.0

Введение

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

Когда вы компилируете свой код, он преобразуется в Microsoft Intermediate Language (MSIL) и помещается в файл формата Portable Executable (PE) вместе с метаданными, сгенерированными компилятором. Атрибуты позволяют добавить к метаданным дополнительную информацию, которая затем может извлекаться при помощи механизма рефлексии. Компилятор создает атрибуты, когда вы объявляете экземпляры специальных классов, наследующих от System.Attribute.

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

Вы можете использовать атрибуты для произвольного комментирования кода и управления поведением компонентов. Атрибуты позволяют добавлять описательные элементы в C#, управляемые расширения для C++, Microsoft Visual Basic.NET или в любой другой язык, поддерживающий CLR, без необходимости переписывать компилятор.

Кроме того, атрибуты можно использовать в ATL проектах, но это тема уже другой статьи.

Применение атрибутов

Большинство атрибутов применяется к таким элементам языка как классы, методы, поля и свойства. Но некоторые атрибуты являются глобальными – они воздействуют на всю сборку или модуль. Глобальные атрибуты в текстах программ объявляются после using директив верхнего уровня перед определениями типов и пространств имен. Они могут использоваться в разных исходных файлах одной программы.

Применение атрибутов на уровне классов и методов

Атрибуты в программном коде используются следующим образом:

Атрибут помещается в метаданные при компиляции кода и становится доступен CLR и любым инструментальным средствам и приложениям через механизмы рефлексии.

Применение атрибутов на уровне сборок

При компиляции кода строка «Моя сборка» помещается в манифест сборки в секции метаданных. Этот атрибут можно увидеть с помощью дизассемблера MSIL (Ildasm.exe) или с помощью пользовательских средств.

Читайте также:  что лучше эпилятор или шугаринг в домашних условиях

Применение атрибутов на уровне модулей


Пользовательские атрибуты


Применение атрибута AttributeUsageAttribute


Поле AttributeTargets


Свойство Inherited

Вышеописанные атрибуты затем применяются к методу класса MyClass :

Свойство AllowMultiple

Если используется несколько экземпляров атрибутов, MyAttribute заставляет компилятор выдать сообщение об ошибке. Следующий фрагмент кода иллюстрирует правильное использование атрибута YourAttribute и неправильное – MyAttribute :

Типы данных, допустимые в атрибутах

Атрибут может содержать поля следующих типов:

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

Определение атрибутивного класса

Теперь можно приступить к определению самого класса. Это определение выглядит подобно определению обычного класса, что демонстрирует следующий пример:

Этот пример показывает следующие положения:

Определение конструкторов

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

Конструкторы можно перегружать, чтобы принимать различные комбинации параметров. Если для атрибутивного класса определены свойства, для инициализации можно использовать комбинацию позиционных и именованных параметров. Обычно все обязательные параметры объявляются как позиционные, а необязательные как именованные.

Следующий пример показывает примеры использования параметризованного конструктора для инициализации атрибута. Здесь предполагается, что атрибут имеет обязательный параметр типа Boolean и необязательный типа String.

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

Определение свойств

Свойства определяются, если нужно передавать именованные параметры в конструкторы или легко и удобно получать значения полей атрибута. Следующий пример показывает, как реализовать простое свойство для пользовательского атрибута:

Пример пользовательского атрибута

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

В первом примере показано применение атрибута с одним обязательным параметром, а во втором – с обоими типами параметров.

Доступ к информации, хранящейся в атрибутах


Получение одиночного атрибута

В следующем примере атрибут DeveloperAttribute (рассмотренный выше) применяется к классу MainApp в целом. Метод GetAttribute использует Attribyte.GetCustomAttribute для получения состояния атрибута DeveloperAttribute перед тем, как вывести информацию на консоль.

При запуске эта программа выдает на консоль следующие строки:

Если атрибут не найден, метод GetCustomAttribute возвращает нулевое значение. В этом примере предполагается, что атрибут определен в текущем пространстве имен, если это не так, не забудьте импортировать соответствующее пространство имен.

Получение списка однотипных атрибутов

Как это сделать, показано в следующем примере:

Получение списка разнотипных атрибутов


Пример

Демонстрационная программа, показывающая, как можно получать информацию из секций метаданных, написана на C#. На рисунке показана закладка, на которой можно увидеть значения атрибутов для сборки, на других закладках показывается аналогичная информация. Я не буду подробно описывать пример, кому надо, может скачать и скомпилировать его. Пример достаточно прост и разобраться в том, как получаются атрибуты, ни для кого не составит труда.

Заключение

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Атрибут файла (Операционные Системы)

Атрибуты файлов – это специальные системные метаданные, которые описывают свойства конкретного файла или целой папки. Часто под атрибутами подразумевают также некоторые дополнительные параметры, вроде, даты создания файла, или специализированную метаинформацию о конкретных типах данных (например, EXIF для изображений или ID3-теги для музыки). [Источник 1]

Содержание

Описание

Атрибут файла — это некая метка (или флаг), которая сообщает операционной системе о существовании особых правил для работы с конкретным файлом.

Место хранения атрибутов файлов

Место хранения атрибутов в частном случае зависит от реализации конкретной файловой системы. В качестве примера можно привести файловую систему Ext4 в силу ее популярности в ОС Linux. Как и во многих других файловых системах семейства UNIX\*Nix в Ext4 есть понятие inode (айнод). Изначальное название — index node — индексная точка/вершина. Inode — это специальная структура данных в файловой системе, которая хранит определенную информацию об объектах файловой системы — стандартных файлах, каталогах и т.д. Айноды хранятся в таблице айнодов, для которой файловая система выделяет необходимое количество блоков. Под определенной информацией подразумеваются отметки времени доступа, флаги, расширенные атрибуты, карты блоков данных и др. В официальной документации по ext4 те атрибуты, о которых идет речь в этой заметке, называются флагами (flags). Не стоит путать с расширенными атрибутами (extended attributes) — это несколько иная сущность.

Читайте также:  Что лить первым самогон или воду

Виды функций атрибутов (флагов)

Если обратится к man chattr то можно увидеть почти полный список атрибутов (флагов):

Сжатие данных

Атрибут «c» существует для того,чтобы указывать пользователю,что файл сжат. Теоретически кроме экономии дискового пространства выгодой от использования этого флага может быть и ускорение дисковых операций (зависит от алгоритма сжатия). Данный атрибут, к сожалению, не работает в ext4, так как данная ФС не поддерживает механизм сжатия. Но зато работает в новой файловой системе BTRFS, где на данный момент реализованы целых два алгоритма сжатия — LZO, и ZLIB. Как раз с алгоритмом LZO разработчикам удалось добиться увеличения производительности дисковых операций за счет того, что файлы стали занимать меньше места, соответственно времени на их запись и считывание нужно меньше, а операции сжатия и распаковки занимают совсем немного процессорного времени. К сожалению, от выборочного использования этого флага эффекта будет немного — так же как и с атрибутом «A» — для достижения максимального эффекта лучше будет использовать опцию монтирования, чтоб поведение опции было глобальным для всех файлов. [Источник 2]

Виды атрибутов для Windows

В Windows существует несколько атрибутов файлов, в том числе:

Для Windows с NTFS

Редкие атрибуты

Вот несколько дополнительных, хотя и более редких, атрибутов файлов, распознаваемых Windows:

Атрибуты для Linux

В Linux каждый файл имеет свойство, характеризующее владельца файла. Управление доступом к файлам осуществляется с помощью атрибутов – специальных характеристик, имеющихся у каждого файла. Всего существует 12 характеристик. Девять из них можно разделить на три класса:

Размещение атрибутов

Пользователь может получать доступ к атрибутам, используя средства, предоставленные для этих целей файловой системой. Обычно разрешается читать значения любых атрибутов, а изменять — только некоторые. Например, пользователь может изменить права доступа к файлу (при условии, что он обладает необходимыми для этого полномочиями), но изменять дату создания или текущий размер файла ему не разрешается. Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS DOS (см. рисунок 1). На рисунке представлена структура записи в каталоге, содержащая простое символьное имя и атрибуты файла. Здесь буквами обозначены признаки файла: R — только для чтения, А — архивный, Н — скрытый, S — системный.

Способ размещения атрибутов UNIX

Другим вариантом является размещение атрибутов в специальных таблицах, когда в каталогах содержатся только ссылки на эти таблицы. Такой подход реализован, например, в файловой системе ufs ОС UNIX. В этой файловой системе структура каталога очень простая. Запись о каждом файле содержит короткое символьное имя файла и указатель на индексный дескриптор файла, так называется в ufs таблица, в которой сосредоточены значения атрибутов файла.В том и другом вариантах каталоги обеспечивают связь между именами файлов и собственно файлами. Однако подход, когда имя файла отделено от его атрибутов, делает систему более гибкой. Например, файл может быть легко включен сразу в несколько каталогов. Записи об этом файле в разных каталогах могут содержать разные простые имена, но в поле ссылки будет указан один и тот же номер индексного дескриптора. [Источник 3]

Использование атрибутов файлов

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

Атрибуты файлов и атрибуты папок

Применение атрибутов файлов

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

Источник

Библиотека с советами