Selección múltiple de archivos VB6

23 enero, 2008 por Mr. FotoPex Dejar una respuesta »

 

 

En este ejemplo al seleccionar varios archivos los mismos se copiaran a una carpeta específica, pero antes verificará si ya existen.

Vamos crear un nuevo proyecto y colocaremos un control Commondialog y un botón.

formulario.png

Ahora debemos de agregar al proyecto el control Microsoft Commond Dialog. Dando un clic en el menú Proyect > Components.

control-commond-dialog.png

También debemos de agregar la referencia Microsoft Scripting Runtime, la cual la encontraremos en el mismo men&uacte; Proyect.

referencias-scripting-runtime.png

Y finalmente el código y sus comentarios.

Visual Basic:
  1. 'Api para copiar Archivos
  2.   Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" _
  3.   (ByVal lpExistingFileName As String, ByVal lpNewFileName _
  4.   As String, ByVal bFailIfExists As Long) As Long
  5.  
  6. Public Function FileExists(sFullPath As String) As Boolean
  7. 'Verifica si existe un archivo
  8. 'Debemos de Activar
  9. 'Microsoft Scripting Runtime en las Referencias de Visual Basic.
  10.     Dim oFile As New Scripting.FileSystemObject
  11.     FileExists = oFile.FileExists(sFullPath)
  12. 'Regresa Falso o Verdadero
  13. End Function
  14.  
  15.  
  16. Private Sub Command1_Click()
  17. On Error GoTo TrataError
  18.     'Decalramos el Array dinámico de tipo String
  19.     Dim Archivos() As String
  20.     Dim i As Long, flag As String
  21.    
  22.     With CommonDialog1
  23.         .CancelError = True ' con esto se le dice al Visual Basic que si se pulsa en Cancelar
  24.         .MaxFileSize = 32760
  25.         .FileName = ""
  26.         .DialogTitle = "Selección Multiple "
  27.         .Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer
  28.         .ShowOpen
  29.     End With
  30.          
  31.     'Guardamos en el array dinámico los archivos con la función Split
  32.     'indicandole como separador el Chr(0)
  33.     Archivos = Split(CommonDialog1.FileName, Chr(0))
  34.        
  35.     'Recorremos el Array e imprimimos el resultado en el formulario
  36.       For i = 0 To UBound(Archivos)
  37.         Dim RutaArchivo
  38.         Dim pos
  39.        
  40.         RutaArchivo = Archivos(i) 'Asignamos el nombre del archivo
  41.         Do 'Extraemos el Nombre de la ruta completa
  42.             pos = InStr(RutaArchivo, "\")
  43.             RutaArchivo = Mid(RutaArchivo, pos + 1, Len(RutaArchivo))
  44.         Loop Until pos = 0
  45.        
  46.         'Verificamos si no existe
  47.         If (FileExists("C:\Temp\" & RutaArchivo)) = True Then
  48.             MsgBox "Archivo " & "C:\Temp\" & RutaArchivo & " ya existe"
  49.         Else
  50.             CopyFile Archivos(i), "C:\Temp\" & RutaArchivo, True
  51.             DoEvents
  52.         End If
  53.       Next i
  54.      
  55.     'Eliminamos el array "Archivos"
  56.     Erase Archivos
  57. Exit Sub
  58.    
  59. TrataError:
  60.     If Err.Number = 32755 Then
  61.         MsgBox "El proceso se Cancelo"
  62.         Err.Clear
  63.         Exit Sub
  64.     End If
  65. End Sub

floppy.jpg
Clic para descargar el archivo
Publicidad

Deja un comentario