|
Ideas -
Delphi
|
Si queremos hacer una operación de este tipo al estilo Windows, el siguiente ejemplo mueve un fichero que indicamos a la unidad A: utilizando la función SHFileOperation() que recibe como parámetro una estructura TSHFileOpStruct. La función devuelve un valor 0 si no encuentra errores.
procedure TForm1.Button1Click(Sender: TObject);
var lpFileOp: TSHFileOpStruct;
begin
{ Relleno de la estructura }
lpFileOp.Wnd := Self.Handle;
lpFileOp.wFunc := FO_MOVE;
lpFileOp.pFrom := PChar('C:\d51.gif' + #0#0);
lpFileOp.pTo := PChar('A:\' + #0#0);
lpFileOp.fFlags:= FOF_SIMPLEPROGRESS or FOF_FILESONLY;
lpFileOp.fAnyOperationsAborted := FALSE;
lpFileOp.hNameMappings := nil;
lpFileOp.lpszProgressTitle := PChar('Trasladando archivos al disco D' + #0#0);
{ Mover el archivo }
SHFileOperation(lpFileOp);
end;
Si en lugar de moverlo queremos hacer una copia lo conseguimos sustituyendo en las líneas anteriores:
lpFileOp.wFunc := FO_COPY;
Si es borrar el fichero:
lpFileOp.wFunc := FO_DELETE;
e ignora la línea
lpFileOp.pTo := PChar('A:\' + #0#0);
Si se trata de renombrarlo:
lpFileOp.wFunc := FO_RENAME;
|