Mi devi scusare se non ho capito e la colpa è solo mia che non conosco bene le Api. Nella funzioneche mi hai indicato, che ho provato e che mi da un errore (ovviamente usando la shellApi), mi pare copi solo singoli file con questi comandi
p := StrECopy(p, ‘C:FirstFile.ext1’) + 1;
p := StrECopy(p, ‘C:SecondFile.ext2’) + 1;
invece a me interessa tutto il contenuto di una catella come la seguente procedura che funziona benissimo e che uso, che però non mi copia anche le sottocartelle:
procedure CpyFl(const FileName, DestName: TFileName);
var
CopyBuffer: Pointer;
TimeStamp, BytesCopied: Longint;
Source, Dest: Integer;
Destination: TFileName;
const
ChunkSize: Longint = 8192;
begin
Destination := ExpandFileName(DestName);
TimeStamp := FileAge(FileName);
GetMem(CopyBuffer, ChunkSize);
try
Source := FileOpen(FileName, fmShareDenyWrite);
try
Dest := FileCreate(Destination);
try
repeat
BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize);
if BytesCopied > 0 then
FileWrite(Dest, CopyBuffer^, BytesCopied);
until BytesCopied < ChunkSize;
finally
FileClose(Dest);
end;
finally
FileClose(Source);
end;
finally
FreeMem(CopyBuffer, ChunkSize);
end;
end;
Se trovo il modo di usare una funzione o procedura come questa che però mi copi anche le sottocartelle, ho risolto.