PDA

Visualizza la versione completa : [DELPHI] Copiare intera directory con sovrascrittura


crippo
19-10-2006, 10:08
ciao
problema: devo copiare una directory con tutto il suo contenuto da client a server e viceversa,
ho trovato questa funzione:


function TForm1.CopyDir(const fromDir, toDir: string): Boolean;
var
fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do
begin
wFunc := FO_COPY;
fFlags := FOF_FILESONLY;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir)
end;
Result := (0 = ShFileOperation(fos));
end;


perfetto... solo che se la directory esiste giā non me la sovrascrive, ma va a creare un'latra directory all'interno della stessa...
Esempio: se copio da c:\prova a \server\prova mi succede che copia il tutto in \server\prova\prova

effettivamente potrei prima rimuovere la directory e poi copiarla, ma volevo sapere se era possibile evitare questo (per fare il figo :) ).

qualcuno č in grado di aiutarmi? alka? oppure dove posso trovare info riguardanti sto tipo TSHFileOpStruct?

grazie

alka
19-10-2006, 10:19
Leggi la descrizione MSDN di TShFileOpStruct (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/structures/shfileopstruct.asp), potrebbe contenere informazioni su alcuni flag che possono esserti d'aiuto.

In generale, proverei ad usare la stessa istruzione ma specificando, nel caso della directory di destinazione, solamente la cartella superiore che conterrā la directory di origine, e non il percorso finale.

Non posso verificare quanto ho scritto, ma tentare non nuoce. :)

Ciao! :ciauz:

crippo
19-10-2006, 10:37
In generale, proverei ad usare la stessa istruzione ma specificando, nel caso della directory di destinazione, solamente la cartella superiore che conterrā la directory di origine, e non il percorso finale.


funziona!!!
grazie mille

Loading