Visual Basic - Recorrer directorio y obtener archivos

Life is soft - evento anual de software empresarial
 
Vista:

Recorrer directorio y obtener archivos

Publicado por reinaldo (20 intervenciones) el 17/05/2007 15:06:24
Buenas.
He estado intentando recorrer un directorio y obtener todos y cada uno de los archivos que se encuentran en èste.
La funciòn me devuelve los nombres de los archivos pero justo el ultimo nombre lo devuelve vacio, el codigo que tengo es el siguiente

Private Function nameArchivos(ByVal Ruta As String) As String
Dim i As Long
Dim Arch As String

i = 0
Arch = Dir(Ruta)
MsgBox Arch
If Len(Arch) > 0 Then
i = i + 1
Do
Arch = Dir
vec(i) = Arch
If Len(Arch) > 0 Then
i = i + 1
End If
Loop Until Len(Arch) = 0
End If
nameArchivos = vec()
End Function

En el directorio de prueba se tienen 4 archivos, esta funcion solo imprime 3 archivos y el ultimo lo devuelve vacio.

Alguna sugerencia?
Gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Recorrer directorio y obtener archivos

Publicado por gustavo (218 intervenciones) el 17/05/2007 16:04:02
no se como quieres mostrarlo pero te muestro, funciona en un formulario con un dirlistbox, driverlistbox y un filelistbox.
Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub

Private Sub Drive1_Change()

On Error GoTo drive_error
Dir1.Path = Drive1.Drive
Exit Sub
drive_error:
MsgBox "error: Unidad no Preparada", vbCritical, "Error"
Exit Sub

End Sub

Private Sub File1_Click()
Dim archivo As String
archivo = File1.Path & "\"
archivo = archivo & File1.List(File1.ListIndex)
Image1.Picture = LoadPicture(archivo)

End Sub
espero te ayude
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Recorrer directorio y obtener archivos

Publicado por cmgcharli (128 intervenciones) el 17/05/2007 16:19:22
La primera vez que usa Dir(Ruta) no guardas el nombre

La primera vez que se llama a la función Dir se debe especificar el nombre_ruta, de lo contrario se producirá un error. Si además especifica los atributos de archivo, deberá incluir el nombre_ruta.

La función Dir devuelve el primer nombre de archivo que coincide con nombre_ruta. Para obtener más nombres de archivo que coincidan con nombre_ruta, deberá volver a llamar a la función Dir sin argumentos. Cuando no hay más nombres de archivo coincidentes, la función Dir devuelve una cadena de caracteres de longitud cero

Private Function nameArchivos(ByVal Ruta As String) As String
Dim i As Long
Dim Arch As String

i = 0
Arch = Dir(Ruta)
MsgBox Arch
If Len(Arch) > 0 Then

VEC(i)=ARCH

i = i + 1
Do
Arch = Dir
vec(i) = Arch
If Len(Arch) > 0 Then
i = i + 1
End If
Loop Until Len(Arch) = 0
End If
nameArchivos = vec()
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar