Finde og kopiere skjulte filer og mapper
Finde og kopiere skjulte filer og mapperJeg har skrevet et lille program som kan kopiere filer fra et sted til et andet (drev).
procedure TForm1.FindFiler(S: String);
var
Sr : TSearchRec;
FileAttrs : Integer;
begin
FileAttrs := 0; // 0 for filer, 16 for mapper
if FindFirst(S + '*.*', FileAttrs, Sr) = 0 then
begin // Opdater med nye filer.
repeat
if (Sr.Attr and FileAttrs) = FileAttrs then
if Sr.Name[1] <> '.' then // Navnet på nuværende eller øvre mappe.
begin
List.Items.Add(Copy(S+Sr.Name, Length(Fra)+1, Length(S+Sr.Name)));
end;
until FindNext(Sr) <> 0;
FindClose(Sr);
end;
FileAttrs := 16; // 0 for filer, 16 for mapper
if FindFirst(S + '*.*', FileAttrs, Sr) = 0 then
begin // Opdater med nye mapper.
repeat
if (Sr.Attr and FileAttrs) = FileAttrs then
if Sr.Name[1] <> '.' then // Navnet på nuværende eller øvre mappe.
begin
FindFiler(S + Sr.Name + '\');
end;
until FindNext(Sr) <> 0;
FindClose(Sr);
end;
end;
Men den vil ikke kopiere skjulte filer og mapper, Outlook.pst ligger jo i en skjult mappe.
FileAttrs := 16; // 0 for filer, 16 for mapper
if FindFirst(S + '*.*', FileAttrs, Sr) = 0 then
Finder kun almindelige mapper.
FileAttrs skal jo så være 18 for skjulte mapper, 20 for system mapper og 22 for skjulte system mapper.
Skal man så køre routinen 4 gange, eller er der en metode hvor man kun behøver at køre routinen én gang?
Tilsvarende med filer.
