Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > SetFileAttributes


Автор: RA 27.7.2003, 13:44
Создал функцию замены Атрибутов файла но она не работает с файлами только с папками.
Что за X**Ня?

Function SetAttrib(name:string;ARHS:string):integer;
begin
if arhs='0000' then SetFileAttributes(PChar(name),FILE_ATTRIBUTE_NORMAL);

if copy(ARHS,1,1)='1' then result:=FILE_ATTRIBUTE_ARCHIVE;
if copy(ARHS,2,1)='1' then result:=result+FILE_ATTRIBUTE_READONLY;
if copy(ARHS,3,1)='1' then result:=result+FILE_ATTRIBUTE_HIDDEN;
if copy(ARHS,4,1)='1' then result:=result+FILE_ATTRIBUTE_SYSTEM;
SetFileAttributes(PChar(name),r);

end;

begin

SetAttrib('c:\file.exe','0100');

Автор: &-ray 27.7.2003, 17:54
Можно попроще организовать:

Код

Function SetAttrib(name:string;ARHS:string):integer;
var
x: integer;
begin
x:=0;
if ARHS[1]='1' then x:=32;
if ARHS[2]='1' then x:=x+1;
if ARHS[3]='1' then x:=x+2;
if ARHS[4]='1' then x:=x+4;
if x=0 then x:=128;
result:=filesetattr(name,x);
end;


Вызов функции:
Код

if SetAttrib('c:\file.exe','0100')<>0 then showmessage('Ошибка!!!');

Автор: &-ray 27.7.2003, 17:59
Ну блин, посмотрел, а этот топик оказывается два раза постили и там уже готовый ответ есть.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)