ò?ò how do I copy multiple files in a directory
Use a TsearchRec:
Example below is in use in a program of mine written in Delphi 2.01, so
it should really work with all later versions, too.
HTH,
hannes breuer
{------------------------------------------------------------------------------}
Function FullFileCopy(SrcFile,DestFile : String; OverWrite : Boolean) :
LongInt;
Var
F : TShFileOpStruct;
tmpS, tmpD : String;
Begin
Result := 0;
If ANSIUpperCase(Trim(SrcFile)) = ANSIUpperCase(Trim(DestFile)) then
Exit;
tmpS := SrcFile + #0; //can't do PChar(), second call overwrites
first!
tmpD := DestFile + #0;
F.Wnd := Application.Handle;
F.wFunc := FO_COPY;
F.pFrom := @tmpS[1];
F.pTo := @tmpD[1];
If OverWrite then f.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION
else F.fFlags := FOF_ALLOWUNDO;
FullFileCopy := ShFileOperation(F);
End;
{------------------------------------------------------------------------------}
function CopyAllFilesWithMask(MaskedName, SrcDir,DestDir : String;
OverWrite : Boolean) : LongInt;
var i : Longint;
sRec : TSearchRec;
begin
i := 0;
try
If FindFirst(SrcDir+MaskedName,faAnyFile,sRec) = 0 then
repeat
FullFileCopy(SrcDir+sRec.Name,DestDir + sRec.Name, OverWrite);
Application.ProcessMessages;
Inc(i);
until FindNext(sRec) <> 0;
finally
SysUtils.FindClose(sRec);
end;
Result := i;
end;