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

FileSystemObject comprobar si ha terminado una copia de carpeta

Estas en el tema de FileSystemObject comprobar si ha terminado una copia de carpeta en el foro de Visual Basic clásico en Foros del Web. Salu2. ValOpciFiles es una var FileSystemObject ¿Existe alguna forma de saber si este comando ha terminado de copiar? o aún mejor, ¿puedo bloquear el formulario ...
  #1 (permalink)  
Antiguo 24/05/2008, 14:00
Avatar de sagutxo  
Fecha de Ingreso: octubre-2006
Mensajes: 78
Antigüedad: 17 años, 6 meses
Puntos: 0
FileSystemObject comprobar si ha terminado una copia de carpeta

Salu2.

ValOpciFiles es una var FileSystemObject


¿Existe alguna forma de saber si este comando ha terminado de copiar?
o aún mejor, ¿puedo bloquear el formulario mientras termina de copìar?
ValOpciFiles.CopyFolder OrigenN.Text, ValCarpeta

Gracias.
  #2 (permalink)  
Antiguo 25/05/2008, 01:57
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: FileSystemObject comprobar si ha terminado una copia de carpeta

Hola,

en vez de utilizar FSO puedes hacerlo con la API SHFileOperation, que te muestra la típica ventana con una barra de progreso y el mensaje de "Quedan xx segundos.."

Código:
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Const FO_COPY = &H2
Private Const FOF_ALLOWUNDO = &H40

Private Type SHFILEOPSTRUCT
    hWnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
End Type

Private Sub Command1_Click()
' sobreescribe sin preguntar, si el directorio destino no existe, lo crea
CopiarConProgreso "C:\Carpeta Origen", "D:\Carpeta Destino"
End Sub

Public Sub CopiarConProgreso(sFuente As String, sDestino As String)
' copia todas las carpetas y subcarpetas del directorio origen
Dim SHOp As SHFILEOPSTRUCT
With SHOp
    .hWnd = 0
    .wFunc = FO_COPY
    .pFrom = sFuente & vbNullChar & vbNullChar
    .pTo = sDestino & vbNullChar & vbNullChar
    .fFlags = FOF_ALLOWUNDO
End With
SHFileOperation SHOp
End Sub

  #3 (permalink)  
Antiguo 31/05/2008, 16:08
Avatar de sagutxo  
Fecha de Ingreso: octubre-2006
Mensajes: 78
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: FileSystemObject comprobar si ha terminado una copia de carpeta

Salu2. Muchísimas gracias. Fabulosa función.
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 10:56.