Nur schnell heruntergetippt, enthält noch Verbesserungspotential:
Delphi-Quellcode:
procedure SetFileReadOnlyFlag(Directory: string; const mask: string = '*.*';
Recursive: Boolean = false);
const
faNewAnyFileEx = $00017FFF;
var
Rec: TSearchRec;
begin
Directory := IncludeTrailingPathDelimiter(Directory);
if FindFirst(Directory + mask, faNewAnyFileEx, Rec) = 0 then
try
repeat
if (Rec.Name <> '.') and (Rec.Name <> '..') then
begin
if (Rec.Attr and faDirectory) = faDirectory then
begin
if Recursive then
SetFileReadOnlyFlag(Directory + Rec.Name, mask, Recursive);
end
else
FileSetAttr(Directory + Rec.Name, Rec.Attr or faReadOnly);
end;
until FindNext(Rec) <> 0;
finally
SysUtils.FindClose(Rec);
end;
end;
Allerdings lässt sich der Schreibschutz im Normalfall mit 2 Mausklicks wieder entfernen, eine wirklich sichere Sache ist das also nicht.