|
Кодирование атрибутов файла |
Наверх Назад Вперед | |
|
Атрибуты файла являются битовой маской, в которой каждый бит кодирует определенный атрибут. Оперировать с битами несложно при помощи операций OR и AND.
Бит 0 (вес 1 = $01) - атрибут ReadOnly ("только чтение") Бит 1 (вес 2 = $02) - атрибут Hidden ("невидимый") Бит 2 (вес 4 = $04) - атрибут SysFile ("системный") Бит 3 (вес 8 = $08) - атрибут VolumeID ("метка тома") Бит 4 (вес 16 = $10) - атрибут Directory ("каталог") Бит 5 (вес 32 = $20) - атрибут Archive ("архивирован") Бит 6 (вес 64 = $40) - атрибут SymLink ("символьная ссылка")
Таким образом, если например требуется задать атрибуты "только чтение" и "архивирован", то 1 or 32 = 33. Аналогично с проверкой атрибутов - несложно маскировать интересующие нас биты при помощи оператора AND, например:
var FAttr : integer; begin FAttr := GetAttr('%System32%\'); if FAttr <> $FFFFFFFF then if (FAttr and 79) > 0 then AddToLog('У системной папки подозрительные атрибуты'); end.
В данном примере маска 79 выделяет биты 0,1,2,3,6 для проверки, и если хотя-бы один из этих битов установлен, то выводится сообщение о подозрительных атрибутах.
|