Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

copiar carpeta por fecha

Estas en el tema de copiar carpeta por fecha en el foro de Visual Basic clásico en Foros del Web. hola amigos, otra duda que me surgio, es que hago una copia de una carpeta cada 24 hrs, pero para evitarme que copie todas las ...
  #1 (permalink)  
Antiguo 06/05/2008, 08:28
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
copiar carpeta por fecha

hola amigos, otra duda que me surgio, es que hago una copia de una carpeta cada 24 hrs, pero para evitarme que copie todas las carpetas que estan dentro de otra carpeta, solo quiero copiar la del dia anterior al actual.

yo tengo un programa que me crea su carpeta con el nombre del dia y la fecha y dentro de ella me guarda su base de datos del dia.

la carpeta la creo asi:

.........."C:\WINDOWS\carpeta\Pv Traslados\" + UCase(Format(Date, "dddd ")) + Format(Date, "dd-mm-yy")

y la carpeta me la crea de esta forma, por ejemplo del dia de hoy: MARTES 06-05-08

teniendo esto en cuenta como le podria hacer para que me copie solo la del dia anterior que seria LUNES 05-05-08

uso esto para que me copie la carpeta completa:

ObjFile.CopyFolder "C:\WINDOWS\carpeta\Pv Traslados\*", "c:\Pv Traslados\"




gracia
  #2 (permalink)  
Antiguo 06/05/2008, 09:01
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Re: copiar carpeta por fecha

Prueba con este código:
Código:
 
Sub CopyBackup(ByVal Path As String, ByVal Destination As String)
On Error Resume Next
Dim SF As Scripting.File
Dim FSO As Object
Set FSO = New Scripting.FileSystemObject
Dim FolderName As String
FolderName = Dir(Path & "*.*", vbDirectory)
Do
    If FolderName = "" Then Exit Do
    If GetAttr(Path & FolderName) = vbDirectory And FolderName <> "." And FolderName <> ".." Then
        If Format(FSO.GetFolder(Path & FolderName).DateCreated, "dd/mm/yyyy") = Format(Now - 1, "dd/mm/yyyy") Then
            FSO.CopyFolder Path & FolderName, Destination
            Set SF = Nothing
            Set FSO = Nothing
            Exit Sub
        End If
    End If
    FolderName = Dir
Loop
End Sub
Esta vez, hice una adaptación del código que había colocado para eliminar las carpetas anteriores a 4 días...
Si te sirve, me avisas.
Saludos

P.S.: Para llamarlo colocas:
Código:
 
CopyBackup "C:\WINDOWS\carpeta\Pv Traslados\", "c:\Pv Traslados\"
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Última edición por David; 06/05/2008 a las 09:13 Razón: Editar código, liberar variables
  #3 (permalink)  
Antiguo 06/05/2008, 09:24
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: copiar carpeta por fecha

gracias por contestar david, pero no me copia la carpeta, no se si tenga que ver que en la carpeta la fecha venga con NOMBRE DEL DIA dd-mm-yyyy y en el codigo que me pasaste viene asi

If Format(FSO.GetFolder(Path & FolderName).DateCreated, "dd/mm/yyyy") = Format(Now - 1, "dd/mm/yyyy") Then

gracias por tu ayuda de nuevo
  #4 (permalink)  
Antiguo 06/05/2008, 09:29
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Re: copiar carpeta por fecha

Cita:
Iniciado por william_085 Ver Mensaje
gracias por contestar david, pero no me copia la carpeta, no se si tenga que ver que en la carpeta la fecha venga con NOMBRE DEL DIA dd-mm-yyyy y en el codigo que me pasaste viene asi

If Format(FSO.GetFolder(Path & FolderName).DateCreated, "dd/mm/yyyy") = Format(Now - 1, "dd/mm/yyyy") Then

gracias por tu ayuda de nuevo
El Nombre de la carpeta no tiene mucho que ver, en el código lo que comprobamos es que la fecha en que fue creada sea la de ayer. Si así es, copia la carpeta.
Es raro, a mí me funcionó. ¿Cómo le pasas los parámetros?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 06/05/2008, 09:38
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: copiar carpeta por fecha

tengo el codigo en un timer

If CDate(Format(tiempo, "hh:mm")) = CDate(Format(Data2.Recordset!respaldo, "hh:mm")) Then
CopyBackup "C:\WINDOWS\carpeta\Pv Traslados\tickets\", "c:\Pv Traslados\tickets\"
CopyBackup "C:\WINDOWS\carpeta\Pv Traslados\inventarios\", "c:\Pv Traslados\inventarios\"

DeleteBackup "C:\WINDOWS\Pollo Feliz\Pv Traslados\tickets\"
DeleteBackup "C:\WINDOWS\Pollo Feliz\Pv Traslados\Inventarios\"
Set ObjFile = Nothing
Else
End If
  #6 (permalink)  
Antiguo 06/05/2008, 09:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Re: copiar carpeta por fecha

Cita:
Iniciado por william_085 Ver Mensaje
tengo el codigo en un timer

If CDate(Format(tiempo, "hh:mm")) = CDate(Format(Data2.Recordset!respaldo, "hh:mm")) Then
CopyBackup "C:\WINDOWS\carpeta\Pv Traslados\tickets\", "c:\Pv Traslados\tickets\"
CopyBackup "C:\WINDOWS\carpeta\Pv Traslados\inventarios\", "c:\Pv Traslados\inventarios\"

DeleteBackup "C:\WINDOWS\Pollo Feliz\Pv Traslados\tickets\"
DeleteBackup "C:\WINDOWS\Pollo Feliz\Pv Traslados\Inventarios\"
Set ObjFile = Nothing
Else
End If
¿Tienes certeza que la carpeta que quieres copiar tiene fecha de ayer?. Selecciona Propiedades en Windows, y mira la fecha donde dice "Creado:"...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 06/05/2008, 09:49
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: copiar carpeta por fecha

si, ya cheque eso tambien y esta como del dia de ayer
  #8 (permalink)  
Antiguo 06/05/2008, 09:52
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: copiar carpeta por fecha

ya puse mi maquina un dia despues para que me copie lo de hoy y nada tampoco, quien sabe que este pasando

fijate que puse esto:

fecha_hoy = Format(Date, "dddd ") + Format(Date, "dd-mm-yy")

ObjFile.CopyFolder "C:\WINDOWS\Pollo Feliz\Pv Traslados\tickets\" & fecha_hoy, "c:\Pv Traslados\tickets\"

y este si me copia la carpeta pero solo del dia actual
  #9 (permalink)  
Antiguo 06/05/2008, 09:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Re: copiar carpeta por fecha

Bueno, no sé por qué pero a mí me funciona, lo que puedes intentar es quitar el On Error Resume Next y mirar si no está dando error en alguna parte del código.
(O puedes subir tus carpetas en formato .rar para que pueda descargarlos y probarlo en mi computadora)...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 06/05/2008, 10:01
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: copiar carpeta por fecha

disculpa amigo, ya funciono, fue un error de dedo, muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:51.