Cita:
Empezado por Juan Carlos
como puedo cambiar los atributos de esta despues de que hayan sido copiados?
|
Pues ya te había dado una sugerencia ¿no?
Pero ahí te va:
Código Delphi
[-]
procedure ChangeReadOnlyAttr(Folder: String; ReadOnly: Boolean);
var
SearchRec: TSearchRec;
begin
if FindFirst(Folder + '\*.*', faAnyFile, SearchRec) = 0 then
repeat
if (SearchRec.Attr and faDirectory) = faDirectory then
begin
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
ChangeReadOnlyAttr(Folder + '\' + SearchRec.Name, ReadOnly);
end
else if ReadOnly then
FileSetAttr(Folder + '\' + SearchRec.Name, SearchRec.Attr or faReadOnly)
else
FileSetAttr(Folder + '\' + SearchRec.Name, SearchRec.Attr and not faReadOnly);
until FindNext(SearchRec) <> 0;
end;
Y por si te surge la inquietud aquí te va una generalización de la rutina anterior:
Código Delphi
[-]
procedure ChangeAttr(Folder: String; SetAttr, RemoveAttr: Integer);
var
SearchRec: TSearchRec;
Attributes: Integer;
begin
if FindFirst(Folder + '\*.*', faAnyFile, SearchRec) = 0 then
repeat
if (SearchRec.Attr and faDirectory) = faDirectory then
begin
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
ChangeAttr(Folder + '\' + SearchRec.Name, SetAttr, RemoveAttr);
end
else
begin
Attributes := (SearchRec.Attr or SetAttr) and not RemoveAttr;
FileSetAttr(Folder + '\' + SearchRec.Name, Attributes);
end;
until FindNext(SearchRec) <> 0;
end;
La anterior rutina la usarías así:
Código Delphi
[-]
ChangeAttr(Folder, faReadOnly, faHidden or faSysFile);
ChangeAttr(Folder, faHidden or faSysFile, 0);
Creo que eso resuelve tus dudas.
// Saludos