PDA

Ver la Versión Completa : copiar un archivo a otro directorio


scotex
18-02-2005, 15:50:14
Hola a todos, necesito hacer una copia de un archivo a otro directorio, pero tengo problemas con los tipos de datos string y Pchar.

Path := ('C:\Prueba\Datos.txt');
Path_New := 'C:\Copia\Copia_Datos.txt';
Try
MkDir(Path_New);
CopyFile(Path, Path_New);
Except
On exception do
showmessage('ERROR');
end;

lucianojdg
18-02-2005, 16:11:00
Para solucionar el probema deberias utilizar la funcion de la siguiente manera:
CopyFile(PChar(Path), PChar(Path_New), FileExists(Path_New));
de esa forma no te va a dar error de Tipos, ademas te estaba faltando un parametro, el cual indica si el archivo existe o no, cosa que determinas con la funcion, FileExists(Path_New), por otro lado, es conveniente que verifiques si el directorio que estas creando existe.
Tu codigo deberia quedar algo paecido a esto:

//...
var
Path, Path_New : String;
begin

Path := ('C:\Prueba\Datos.txt');
Path_New := 'C:\Copia\Copia_Datos.txt';

if not DirectoryExists(C:\Copia) then
begin
Try
MkDir('C:\Copia');
Except
showmessage('Error al intentar crear el directorio: "C:\Copia"');
Exit;
end;
end;

Try
CopyFile(PChar(Path), PChar(Path_New), FileExists(Path_New));
Except
showmessage('Error al intentar copiar el archivo: "' + Path_New + '"');
Exit;
end;

end;
//...


Saludos

scotex
19-02-2005, 11:27:10
Gracias Luciano, funciona perfectamente.

Un saludo.