Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: e500 en 30 Diciembre 2014, 18:11 pm



Título: [SOLUCIONADO] Copiar carpeta de archivos con progresbar
Publicado por: e500 en 30 Diciembre 2014, 18:11 pm
Hola amigos del foro, estoy intentando hace unos días obtener la lista de archivos de un directorio y copiarlos uno por uno a otra carpeta, y que por medio de un minimo y máximo de archivos un progressbar cargue.

Ejemplo:

Carpeta c:\[Numeros]
Archivos 1.num 2.num 3.num 4.num
Copiar esto en d:\[Numeros]\*.*

Espero que me puedan ayudar.
Salu2  :D

      


Título: Re: [CONSULTA] Copiar carpeta de archivos con progresbar
Publicado por: Shell Root en 30 Diciembre 2014, 19:28 pm
Que llevas hasta el momento?


Título: Re: [CONSULTA] Copiar carpeta de archivos con progresbar
Publicado por: e500 en 30 Diciembre 2014, 19:47 pm
Hola amigos del foro, estoy intentando hace unos días obtener la lista de archivos de un directorio y copiarlos uno por uno a otra carpeta, y que por medio de un minimo y máximo de archivos un progressbar cargue.

Ejemplo:

Carpeta c:\[Numeros]
Archivos 1.num 2.num 3.num 4.num
Copiar esto en d:\[Numeros]\*.*

Espero que me puedan ayudar.
Salu2  :D

      

Estoy listando los archivos de la carpeta de esta manera por el momento...

Código:
   'Variable de tipo FILE y FOLDER para listar los archivos de un path
    Dim El_Archivo As File
    Dim El_Directorio As Folder

    'Si no hay items en el List sale
    If List1.ListIndex = -1 Then Exit Sub
    
    List2.Clear
    
    'Nuevo objeto FileSystemObject
    Set Fso = New FileSystemObject
    
    ' Obtiene el directorio
    Set El_Directorio = Fso.GetFolder("c:\[Numero]")
    
    
    ' Lista los ficheros de esta carpeta
    For Each El_Archivo In El_Directorio.Files
       'Añade la ruta
       List2.AddItem El_Archivo.Name
        
    Next El_Archivo

Utilizo la referencia Microsoft Scripting Runtime

Ahora voy a recorrer dicho listbox utilizando:

Código:
Call Shell("xcopy /S CARPETA DESTINO", vbMaximizedFocus)

Voy a seguir programando, sé que lo voy a lograr, pero me parece muy rebuscado mi metodo. Siempre aparece una mente brillante generando ideas muy originales.

Salu2


Título: Re: [CONSULTA] Copiar carpeta de archivos con progresbar
Publicado por: Shell Root en 30 Diciembre 2014, 21:09 pm
Bueno aquí te dejo algo, no se ve mucho el loading uno a uno pero algo es algo, ahi miras como lo arreglas.
Código
  1. Private Sub btnCopiar_Click()
  2.    Dim oWidth, i, oItems, oIncrement As Integer
  3.  
  4.    oWidth = 222
  5.    lblProgressBar.Width = 0
  6.  
  7.    If lblArchivos.ListCount > 0 Then
  8.        oItems = lblArchivos.ListCount
  9.        oIncrement = oWidth / oItems
  10.        For i = 0 To lblArchivos.ListCount - 1
  11.            FileCopy txtCarpetaArchivos.Text & lblArchivos.List(i), txtCarpetaCopiar.Text & lblArchivos.List(i)
  12.            lblProgressBar.Width = lblProgressBar.Width + oIncrement
  13.        Next
  14.    Else
  15.        MsgBox "No hay items para recorrer", vbCritical, "Error"
  16.    End If
  17. End Sub
  18.  
  19. Private Sub btnListar_Click()
  20.    Call ListarArchivos(txtCarpetaArchivos.Text)
  21. End Sub
  22.  
  23. Private Sub UserForm_Initialize()
  24.    txtCarpetaArchivos.Text = "C:\Users\PCSoporte\Desktop\Papeles\Enviar\"
  25.    txtCarpetaCopiar.Text = "E:\EHN\Copiar\"
  26.    lblProgressBar.Width = 0
  27. End Sub
  28.  
  29. Public Sub ListarArchivos(oRuta As String)
  30.    Set oFso = CreateObject("Scripting.FileSystemObject")
  31.    Set oFolder = oFso.GetFolder(oRuta)
  32.    Set oFiles = oFolder.Files
  33.  
  34.    For Each oFile In oFiles
  35.        lblArchivos.AddItem oFile.Name
  36.    Next oFile
  37. End Sub

https://dl.dropboxusercontent.com/u/71932290/EHN.xlsm


Título: Re: [CONSULTA] Copiar carpeta de archivos con progresbar
Publicado por: e500 en 30 Diciembre 2014, 22:14 pm
 ;D gracias! :D lo voy a investigar ya estoy en un 90% casi lo tengo!

Salu2