Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-07-2003
frankmch frankmch is offline
Miembro
 
Registrado: jul 2003
Ubicación: venezuela
Posts: 76
Poder: 21
frankmch Va por buen camino
Question Copiar Archivos

Hola a todos.
De ante mano gracias por la ayuda que me puedan ofrecer.

esta ves necesito realizar copias de carpetas (folders), desde un destino digamos c:\micarpeta hasta otro destino d:\micarpeta.
claro esta que todo el contenido de estas carpetas tambien debe de copiarse.
no puedo utilizar archivos *.bat por razones de seguridad.
debo hacer esto desde mi aplicacion.
me vendria muy bien utilizar la api de windows que realiza esta funcion.
aunque cualquier sugerencia es buena.

gracias
__________________
ing. frankmch
Responder Con Cita
  #2  
Antiguo 25-07-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Busca en la ayuda sobre el tipo TRegister, las funciones FindFirst y FindNext.

(no los metodos de TBDEDataSet, por supuesto).

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 25-07-2003
frankmch frankmch is offline
Miembro
 
Registrado: jul 2003
Ubicación: venezuela
Posts: 76
Poder: 21
frankmch Va por buen camino
Oye amigo, gracias por el dato, aunque no lo use me sirvio de referencia para mi busqueda en las ayudas, a fin de cuentas logre con un poco de ayuda de otras fuentes desarrollar este codigo.

Usaremos la funcion API ShFileOperation. Mirate la ayuda de dicha función, ya que permite varias opciones tal como no mostrar el progreso de la
copia, permitir o no UNDO, etc...

-Incluye ShellApi en el uses de tu form

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
 
  function CopiaTodo(Origen,Destino : String) :
  LongInt;
  var 
    F : TShFileOpStruct;
    sOrigen, sDestino : String;
  begin 
    Result := 0;
    sOrigen := Origen + #0;
    sDestino := Destino + #0;
 
    with F do 
    begin 
      Wnd   := Application.Handle;
      wFunc := FO_COPY;
      pFrom := @sOrigen[1];
      pTo   := @sDestino[1];
      fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION
    end; 
 
    Result := ShFileOperation(F);
end; 
 
begin 
  CopiaTodo('c:\directorio\*.*','c:\directorio2');
end;

gracias por tu ayuda...
__________________
ing. frankmch

Última edición por dec fecha: 24-10-2006 a las 01:02:31.
Responder Con Cita
  #4  
Antiguo 23-10-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Hola a todos!!!

aqui de nuevo,

me gustaria que cuando copio un archivo de un lugar a otro, me apareciera la ventanita de progreso de copiado.

Anexo codigo de como copio el archivo

Código Delphi [-]
copiar := CopyFile(Pchar('c:\Microcredito\SourceT\Microcredito.exe'),Pchar('\\'+compudest+'\Microcredito\prueb  a_.exe'), FALSE);
      if copiar = False then
      Begin
        memo1.Lines.Add('*****************************************');
        memo1.Lines.Add('*******  ERROR AL COPIAR EL ARCHIVO  ****');
        memo1.Lines.Add('*********       VERIFIQUE    ************');
      end
      else
      Begin
        fintrans := Time;
        label3.Caption := TimeToStr(Now);
        inistr := TimeToStr(iniciotrans);
        finstr := TimeToStr(fintrans);
        memo1.Lines.Add('Archivo copiado a: '+stringgrid1.Cells[0,cont] +' Inicio ' +inistr + ' Fin '+finstr);
        showmessage ('Archivo copiado satisfactoriamente a la compu: '+compudest);
      end;

si alguien sabe alguna opcion, se los agradeceria, ya que al momento de querer copiar de una direccion ip a otra, a veces se tarda y no se si realmente esta copiando o se quedo trabada.

Muchas Gracias.

Saludos!!!
Responder Con Cita
  #5  
Antiguo 23-10-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Utiliza algo como esto:
Código Delphi [-]
uses ShellApi;

var
  FOS: SHFILEOPSTRUCT;
begin
  FillChar(FOS,Sizeof(FOS),0);
  with FOS do
  begin
    wFunc:= FO_COPY;
    pFrom:= PChar('d:\1.wmv'+#0);
    pTo:= Pchar('d:\2.wmv'+#0);
  end;
  SHFileOperation(FOS);
end;
Responder Con Cita
  #6  
Antiguo 23-10-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Hola!!!

Ya logre que me saliera la ventanita de copiando
Tome el codigo de frankmch y lo adapte y ya me funcionó.

De todos modos muchas gracias.
Responder Con Cita
  #7  
Antiguo 27-10-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Hola a todos, ahora me surge una pregunta o cuestion.

Como se si realmente se copió el archivo.

Necesito poner en un memo, a donde se copio el archivo y si se copio correctamente o no.
Lo que pasa es que necesito hacer un proceso que se va a ejecutar cada cierto tiempo, pero aproximadamente a las 2 o 3 de la mañana, por lo tanto, nadie va a estar en la oficina y se va a dar cuenta si se copio o no, hasta el dia siguiente.

Que pasaría si yo me voy a la casa tranquilamente y regreso al dia siguiente y me encuentro con la noticia de que marco error en la primera copia a realizar(ya sea porque la computadora estaba apagada, no estaba conectada a la red, la sesion estaba cerrada, etc), tendria que volver a correr el proceso manualmente, y eso seria fatal para la empresa donde estoy trabajando.

Entonces simplemente quiero saber como puedo saber si se copio o no el archivo y si se copio correctamente, poner la direccion ip en un memo y la palabra ok delante de esta.

Si alguien tiene alguna idea, se aceptan.

Muchas Gracias
Saludos!!!
Responder Con Cita
  #8  
Antiguo 01-02-2007
suseLinux suseLinux is offline
Miembro
 
Registrado: dic 2006
Posts: 18
Poder: 0
suseLinux Va por buen camino
Excelente Aporte.. Gracias
__________________
Rorro
Developer amateaur
http://www.applies.cl/
http://www.applies.cl/
http://www.applies.cl/
Responder Con Cita
  #9  
Antiguo 28-08-2011
ergonickolas ergonickolas is offline
Registrado
NULL
 
Registrado: jul 2011
Posts: 6
Poder: 0
ergonickolas Va por buen camino
me podrias pasar el codigo

hola frankmch, soy nuevo, pero estaba justo buscando una funcion que sirviera para poder crear backup de archivos pero no he podido hacerlo funcionar.me podrias pasar el codigo completo, porfa lo necesito es que estoy haciendo un programa para mi escuela, y no puedo terminarlo. desde ya muchas gracias
Responder Con Cita
  #10  
Antiguo 29-08-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, ergonickolas, te recomiendo que leas nuestra guía de estilo, gracias.

Por cierto, si te fijas, ese mensaje es de 2003
Responder Con Cita
  #11  
Antiguo 26-02-2014
Avatar de macedo_mx
macedo_mx macedo_mx is offline
Registrado
 
Registrado: ene 2008
Ubicación: Mexico
Posts: 5
Poder: 0
macedo_mx Va por buen camino
Buen Aporte !!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:50:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi