Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-05-2006
Leonardo Leonardo is offline
Miembro
 
Registrado: ago 2004
Posts: 37
Poder: 0
Leonardo Va por buen camino
sobreescribir directorio

que tal estoy tratando de encontrar la forma de poder copiar una carpeta, pero si esta ya existe quiero que me sobreescriba el contenido, dentro de los foros encontre una liga con el siguiente codigo:

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:\Delphi3\*.*','c:\kk');
end;

este procedimiento funciona bien, solo que si el directorio ya existe me creo otro con el mismo nombre y los va anidando.

como puedo hacer para que me sobreescriba el directorio.

Última edición por dec fecha: 28-05-2006 a las 03:30:41.
Responder Con Cita
  #2  
Antiguo 27-05-2006
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Poder: 21
Sotrono Va por buen camino
Hola, para escribir con la sintaxis de Delphi en el foro tenés la Etiqueta Delphi, que hace mucho mas legible el codigo.
Para usarla hay un boton en la barra de herramientas del editor de textos de los post con el simbolo de ClubDelphi.

Bytes!!
Responder Con Cita
  #3  
Antiguo 28-05-2006
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Poder: 21
Sotrono Va por buen camino
Cita:
Empezado por Leonardo
como puedo hacer para que me sobreescriba el directorio.
Lo que querés vos es que se borre todo el contenido original del directorio y que luego se realice la copia de archivos o querés que, si existen archivos con el mismo nombre a los que se van a copiar, éstos se sobreescriban, quedando así el directorio con el contenido viejo (menos los archivos que se sobreescribieron) más el contenido nuevo??

Por si te interesa, aca tenés la documentación de Micro$oft.
Responder Con Cita
  #4  
Antiguo 28-05-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
este procedimiento funciona bien, solo que si el directorio ya existe me creo otro con el mismo nombre y los va anidando.
No me termino de aclarar con qué querrás decir con eso de que los va anidando... ¿podrías explicarlo un poco? Gracias.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 28-05-2006
Leonardo Leonardo is offline
Miembro
 
Registrado: ago 2004
Posts: 37
Poder: 0
Leonardo Va por buen camino
lo que pretendo hacer es lo segundo que mencionas satrono
"si existen archivos con el mismo nombre a los que se van a copiar, éstos se sobreescriban, quedando así el directorio con el contenido viejo (menos los archivos que se sobreescribieron) más el contenido nuevo"


y a lo que me refiero con anidar es que si copio el directorio c:\prueba

a c:\destino la primera vez queda asi c:\destino\prueba

si vuelvo a ejecutar elprocedimiento ahora queda asi c:\destino\prueba\prueba
Responder Con Cita
  #6  
Antiguo 28-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por Leonardo
si vuelvo a ejecutar elprocedimiento ahora queda asi c:\destino\prueba\prueba
Se quedará la cadena "prueba" en alguna variable, de forma que se concatena, porque la verdad no tiene sentido alguno . Revisa bien el código.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 28-05-2006
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Poder: 21
Sotrono Va por buen camino
Cita:
Empezado por Sotrono
"si existen archivos con el mismo nombre a los que se van a copiar, éstos se sobreescriban, quedando así el directorio con el contenido viejo (menos los archivos que se sobreescribieron) más el contenido nuevo"
Revisa bien cómo le pasas los parámetros, porque a mi me funciona bien la función, es decir me hace lo que dije en la cita.

Cita:
Empezado por Sotrono
lo que pretendo hacer es lo segundo que mencionas satrono
Saludos LeAnardo!!
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Excel : sobreescribir o no un archivo desde Builder? aleph C++ Builder 2 17-04-2006 05:03:17
Error: Sobreescribir Formulario ? Jesús Pena OOP 2 31-01-2006 23:32:12
sobreescribir ejecutable EXE pepe2000 OOP 5 16-01-2006 10:38:49
Ayuda para sobreescribir property Egroc OOP 3 12-11-2005 22:24:09
Sobreescribir en un dbmemo acrophet Varios 6 04-08-2004 20:19:31


La franja horaria es GMT +2. Ahora son las 09:13:27.


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