Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/10/2005, 06:55
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Alguien recuerda si en MS-DOS se podían copiar subcarpetas?

Hola amigos

Mi intención con esto era hacer un ejecutable VB, que (mediante una tarea programada) a determinara hora - digamos a las 23:00 - me hiciera una salva diaria de una carpeta con todas sus subcarpetas.

En dicho proceso el programa crea una carpeta que confecciona a partir de las variables
VMonth1 = Trim(Str(Month(Date)))
VDay1 = Trim(Str(Day(Date)))
y en ella copia los datos.

Pero yo no quiero que medie intervención humana, por eso quité el botón de comando y lo puse en el Form_Load, ejecutando un proceso llamado MKDIR.

El programa se ejecuta perfectamente, pero sólo copia los ficheros del directorio raíz, en este caso, de D:\0

Alguien recuerda o sabe si se podrían copiar tambien las subcarpetas?

************

El código me queda así:

Public Comando As String
Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const STILL_ACTIVE = &H103
Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess&, ByVal bInheritHandle&, ByVal dwProcessId&) _
As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) _
As Long
Private VCadena As String
Private VMonth1 As String
Private VDay1 As String

Sub EsperarShell(sCmd As String)
Dim hShell As Long
Dim hProc As Long
Dim codExit As Long
' ejecutar comando
hShell = Shell(Environ$("Comspec") & " /c " & sCmd, 2)
' esperar a que se complete el proceso
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell)
Do
GetExitCodeProcess hProc, codExit
DoEvents
Loop While codExit = STILL_ACTIVE
'MsgBox "El Proceso ha Terminado", vbInformation + vbOKOnly, "Mensaje"
End Sub

Private Sub MKDIR()
VMonth1 = Trim(Str(Month(Date)))
VDay1 = Trim(Str(Day(Date)))
VCadena = "MD D:\1\" & VMonth1 & "-" & VDay1
Comando = VCadena
EsperarShell (Comando)
VCadena = "COPY D:\0\*.* D:\1\" & VMonth1 & "-" & VDay1
Comando = VCadena
EsperarShell (Comando)
End Sub

Private Sub Form_Load()
MKDIR
End
End Sub