Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Copiar una carpeta a otra con API de Windows y Delphi
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Copiar una carpeta a otra con API de Windows y Delphi

Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Copiar una carpeta a otra con API de Windows y Delphi Responder citando

Hay alguna forma de copiar una carpeta (y subcarpetas) en otra carpeta o unidad de disco sin mucho código, sin recorrer los ficheros y demás. Existe alguna función del API de Windows para realizar este menester.

He visto en esta web algunas aplicaciones con código fuente que copian una carpeta a otra de forma recursiva (incluyendo los subdirectorios) pero recorriendo fichero a fichero, por ejemplo:

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=291

Pero lo veo demasiado "engorroso", busco algo muy sencillo, incluso que permita "mover" además de copiar.
MensajePublicado:
Sab Mar 21, 2009 5:02 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Copiar una carpeta a otra con API de Windows y Delphi Responder citando



Anuncios



varios escribió:
Hay alguna forma de copiar una carpeta (y subcarpetas) en otra carpeta o unidad de disco sin mucho código, sin recorrer los ficheros y demás. Existe alguna función del API de Windows para realizar este menester.

He visto en esta web algunas aplicaciones con código fuente que copian una carpeta a otra de forma recursiva (incluyendo los subdirectorios) pero recorriendo fichero a fichero, por ejemplo:

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=291

Pero lo veo demasiado "engorroso", busco algo muy sencillo, incluso que permita "mover" además de copiar.


Puedes utilizar la función del API de Windows SHFileOperation, con esta función realizarás la copia de la carpeta mediante el propio Windows, incluso te aparecerá la ventana de progreso de la copia.
MensajePublicado:
Sab Mar 21, 2009 8:07 pm
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Re: Copiar una carpeta a otra con API de Windows y Delphi Responder citando



Anuncios



alonsojpd escribió:
Puedes utilizar la función del API de Windows SHFileOperation, con esta función realizarás la copia de la carpeta mediante el propio Windows, incluso te aparecerá la ventana de progreso de la copia.


¿Cómo se utiiza esta función del API de Windows?
MensajePublicado:
Sab Mar 21, 2009 8:08 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Copiar una carpeta a otra con API de Windows y Delphi Responder citando



Anuncios



varios escribió:
¿Cómo se utiiza esta función del API de Windows?


Te indicamos un ejemplo:

Código:

procedure copiarCarpetas (handle : THandle;
    carpetaOrigen, carpetaDestino : string;
    accionRealizar : Word);
var
  estructuraOp : TSHFileOpStruct;
begin
  with estructuraOp do
  begin
    Wnd := handle;
    wFunc := accionRealizar;
    pFrom := pchar(carpetaOrigen);
    pTo := pchar(carpetaDestino);
    fFlags := FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
    fAnyOperationsAborted := false;
    hNameMappings := nil;
    lpszProgressTitle := nil;
  end;
  SHFileOperation(estructuraOp);
end;


Y un ejemplo de uso de esta función:

Código:

  copiarCarpetas (formMenuPrincipal.Handle,
      txtCarpetaOrigen.Text, txtCarpetaDestino.Text, FO_COPY);
MensajePublicado:
Sab Mar 21, 2009 8:10 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Copiar una carpeta a otra con API de Windows y Delphi Responder citando



Anuncios



Aquí tienes el código fuente de la aplicación AjpdSoft Copiar Carpetas (100% Open Source), esta aplicación utiliza la función del API de Windows SHFileOperation:

http://www.ajpdsoft.com/modules.php?name=Downloads&d_op=viewdownloaddetails&lid=230
MensajePublicado:
Dom Mar 22, 2009 9:36 am
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+