Функция FileSetAttr в Delphi устанавливает атрибуты файла.
SysUtils unit
function FileSetAttr ( const FileName : string; Attributes : Integer; ) : Integer;
Функция FileSetAttr устанавливает атрибуты определенного файла. Также можно изменять атрибуты файла.
Следующими значениями Integer возможна установка атрибутов:
- faReadOnly : 1 : Файл только для чтения
- faHidden : 2 : Скрытый файл
- faSysFile : 4 : Системный файл
- faVolumeID : 8 : Файл идентификатора объёма
- faDirectory : 16 : Файл директории
- faArchive : 32 : Архивный файл
- faSymLink : 64 : Ярлык
Возвращённая величина Integer является нулем, если установка атрибутов была успешна, в противном случае она содержит код ошибки.
Примечание.
Эта функция зависит от операционной системы. Например, Архив ничего не значит в Linux.
Важно: В течение испытания, автор всегда получал ненулевой код возврата, даже при том, что соответствующие биты были установлены.
Функция FileSetAttr: Создание текстового файла, установка атрибутов только для чтения и скрытый и показ его атрибутов
var
fileName : string;
myFile : TextFile;
attrs : Integer;
begin
// Попытка открыть текстовый файл для записи
fileName := 'ATestFile.txt';
AssignFile(myFile, fileName);
ReWrite(myFile);
// Запись в файл
Write(myFile, 'Hello World');
// Закрытие файла
CloseFile(myFile);
// Делание файла только для чтения и системным
if FileSetAttr(fileName, faReadOnly or faSysFile) > 0
then ShowMessage('Атрибуты файла установлены в только для чтения и системный')
else ShowMessage('Изменение атрибутов файла провалилось');
// Получение атрибутов файла
attrs := FileGetAttr(fileName);
// Показ этих атрибутов
if attrs and faReadOnly > 0
then ShowMessage('Файл только для чтения')
else ShowMessage('Файл не только для чтения');
if attrs and faHidden > 0
then ShowMessage('Файл скрытый')
else ShowMessage('Файл не скрытый');
if attrs and faSysFile > 0
then ShowMessage('Файл является системным')
else ShowMessage('Файл не является системным');
if attrs and faVolumeID > 0
then ShowMessage('Файл является идентификатором объёма')
else ShowMessage('Файл не является идентификатором объёма');
if attrs and faDirectory > 0
then ShowMessage('Файл является каталогом')
else ShowMessage('Файл не является каталогом');
if attrs and faArchive > 0
then ShowMessage('Файл архивный')
else ShowMessage('Файл не архивный');
if attrs and faSymLink > 0
then ShowMessage('Файл является ярлыком')
else ShowMessage('Файл не является ярлыком');
end;
Результат
Атрибуты файла установлены в только для чтения и системный
Файл только для чтения
Файл не скрытый
Файл является системным
Файл не является идентификатором объёма
Файл не является каталогом
Файл не архивный
Файл не является ярлыком
Похожие функции, процедуры и команды
FileGetAttr — выдаёт атрибуты файла.
FileAge — получение дата/время последнего изменения файла, не открывая его.
FileSetDate — установка даты и времени последнего изменения файла.
FileExists — возвращает True если указанный файл существует.
