PDA

Ver la Versión Completa : atributos


diniremix
19-05-2006, 23:22:12
hola atod@s y saludos

mediante llamadas al api o parecedidas mediante codigo delphi podria darle atributos a mis archivos como de solo lectura, ocultos de sistema etc..:(
uso shellexecute y trato d localizar un archivo y pasarle los parametros pero no m los acepta

por ej (especulando:) ) se podria hacer algo asip?

shellexecute(Form1.handle,nil,'attrib C:\fichero.txt +H +R +S','',sw_shownormal);


agradezco las sugerencias

gracias po sus respuestas:cool:

delphi.com.ar
19-05-2006, 23:24:57
SetFileAttributes o SetFileAttributes es lo que buscas...
var
Attrs : Word;
begin
Attrs := FileGetAttr('MyFile.sys');

if Attrs and faHidden <> 0 then
FileSetAttr('MyFile.sys', Attrs – faReadOnly);
end;

En el foro hay varios ejemplos al respecto,
Saludos!

diniremix
19-05-2006, 23:43:47
hola gracias delphi.com.ar

muy interesante trato d entender (y lo hago) pero nop entiendo esta linea...

var
Attrs : Word;
begin
Attrs := FileGetAttr('MyFile.sys');

//esta!!
if Attrs and faHidden <> 0 then
FileSetAttr('MyFile.sys', Attrs – faReadOnly);
//hasta aqui

end;


entiendo lo q escribiste asip:

a attrs le asignas la ruta del fichero...:)
y ahora evaluas si el archivo esta oculto y attrs es <>0 cierto?...:cool:
finalmente fijas el atributo d solo lectura (Attrs – faReadOnly) al archivo..

corregirme...

ah saludos y gracias por el codigo!

seoane
20-05-2006, 00:44:06
Con el permiso de Federico creo que yo puedo explicartelo. La funcion FileGetAttr devuelve un numero, en el que cada bit significa un atributo (si el bit esta a 1 el atributo esta presente). Por lo tanto para saber si un atributo esta presente hacemos la operacion AND sobre el con un numero que tiene todos los bits a cero menos el que nos interesa, de este modo si el resultado es mayor que cero es que el bit que nos interesaba estaba a uno.

:D Espero no haberte liado mas

diniremix
21-05-2006, 01:48:26
hola y salu2
gracias amigo seoane por el comentario lo explicaste como dicen acá
"con plastilina":) :D

muy instructivo gracias
y .... d nuevo gracias:) ;)

P.D.
no nos olvidemos del amigo delphi.com.ar tambien muchas gracias a él por la idea :) :D