В основном это битмаски. Вы устанавливаете определенный бит, чтобы установить флаг только для чтения, вы очищаете его, чтобы удалить флаг.
Обратите внимание, что указанный выше код не изменит никаких других свойств файла. Другими словами, если файл был скрыт до того, как вы выполнили вышеуказанный код, он также останется скрытым. Если вы просто установите атрибуты файла в .Normal или .ReadOnly, вы можете потерять другие флаги в этом процессе.