|
Retomo el hilo para comentar mis aventuras.
He modificado un código que utiliza ShellApi, ya que el método CopyFile no funciona al parecer con archivos .abs, que es el siguiente:
var
Fos : TSHFileOpStruct;
Buf : array[0..4096] of char;
p : pchar;
sDest : string;
procedure TBackup.Button1Click(Sender: TObject);
begin
ABSRegistros.Connected :=False;
FillChar(Buf, sizeof(Buf), #0) ;
p := @buf;
p := StrECopy(p,'C:\Windows\Regsdata\Registros.abs');
sDest := 'e:\';
FillChar(Fos, sizeof(Fos), #0) ;
with Fos do
begin
Wnd := Handle;
wFunc := FO_COPY;
pFrom := @Buf;
pTo := @sDest;
fFlags := 0;
end;
if ((SHFileOperation(Fos) <> 0) or (Fos.fAnyOperationsAborted <> false)) then
Message1.MessageDlg('Error al copiar el archivo',mtWarning, [mbOK], 0);
end;
Con la primera línea desconecto la base de datos.
Luego al ejecutar el código me genera los siguientes errores:
- A pesar que el destino es la Unidad E, copia el archivo Registros.abs en la carpeta del ejecutable.
- Crea un archivo sin extensión cuyo nombre son tres caracteres cualquiera y no el nombre y extensión del archivo.
¿Puede alguien por favor ayudarme a corregir el código ?
¿ Es posible con un edit definir la carpeta de destino ?
De antemano muchas gracias
|