Visual Basic - LISTADO DE ARCHIVOS DIRECTORIO

Life is soft - evento anual de software empresarial
 
Vista:

LISTADO DE ARCHIVOS DIRECTORIO

Publicado por MARKITOS (49 intervenciones) el 14/09/2005 13:45:55
Hola, haber si alguien me puede echar una mano en VB para aplicaciones (concretamente de Word).
Tenfo un form con un boton y un ListBox, la cuestión es que quiero que al pulsar el boton se listen en el ListBox todos los archivos que contiene el directorio definido pero no funciona. ¿alguien puede corregir el error?.

------------------- CÓDIGO -------------------------------

Private Sub CommandButton1_Click()
Directory = "C:\PROGRAMANET\PERROS\MENSUAL\01\"
r = 1
f = Dir(Directory, 7)
Do While f <> ""
r = r + 1
f = Dir()
ListBox1 = Directory
Loop
ListBox1 = "C:\PROGRAMANET\PERROS\MENSUAL\01\"
End Sub

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:Prueba con esto...

Publicado por Zoto (41 intervenciones) el 14/09/2005 14:44:08
Hola MARKITOS

He comprobado tu código y he visto que hay algunos errores que podrían ser los causantes del mal funcionamiento del mismo. Aquí te cuento:

En primer lugar, vamos a considerar los controles de los que disponemos:

-Un ListBox al cual vamos a llamar con el NOMBRE: List1
-Un CommandButton al cual vamos a llamar con el NOMBRE: Command1

Seguidamente, vamos a ver las líneas de código erróneas:

-Línea 8: con el texto-> "ListBox1 = Directory"

Se supone que en esta línea querías agregar un nuevo elemento en el ListBox llamado List1. Este elemento se supone que se trata del archivo recorrido actualmente por la instrucción Dir.

El código que deberías usar, para añadir un nuevo elemento con la variable a la que has llamado f (cuyo valor es el del archivo actualmente recorrido) debería ser así:

List1.AddItem f

En cuanto a la penúltima línea de código, la 10, con el texto:

"ListBox1 = "C:\PROGRAMANET\PERROS\MENSUAL\01\""

No tengo muy claro lo que querías hacer ahí.
Si lo que deseabas era añadir como último elemento del ListBox llamado List1 el directorio, utiliza el mismo método que en la correción anterior, es decir:

List1.AddItem "C:\PROGRAMANET\PERROS\MENSUAL\01\"

____________________________________

Finalmente, el código debería quedar así:

'----------
'código
'----------

Private Sub CommandButton1_Click()
Directory = "C:\PROGRAMANET\PERROS\MENSUAL\01\"
r = 1
f = Dir(Directory, 7)
Do While f <> ""
r = r + 1
f = Dir()
List1.AddItem f 'Esto añade el archivo actual en el ListBox
Loop
List1.AddItem 'Esto añade el directorio como último elemento
End Sub

'----------
'código
'----------
_________________________________________

Espero que mi explicación te sea de gran ayuda.
Si tienes algún problema o duda, comunícalo aquí a ver si alguien puede ayudarte.

Hasta otra,

Zoto
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

NO RULA, QUE DESESPERACIÓN

Publicado por MARKITOS (49 intervenciones) el 14/09/2005 20:23:02
Gracias Zoto, pero no me funciona (no me da error el código pero no me aparece nada en el ListBox), yo lo único que quiero es que al pulsar un boton "CommandButton1" me liste en un ListBox llamado "ListBox1" todos los archivos de un directorio que previamente defino en éste mismo boton. Me interesa hacer ésto para posteriormente mediante la API Shell abrir desde el listBox1 los archivos listados.
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:Intenta otra vez

Publicado por Zoto (41 intervenciones) el 15/09/2005 19:04:20
Observando el código anterior, he descubierto algunos errores que podrían ser los causantes de que el ListBox quede vacío.
Considerando los dos controles necesarios:

-Un CommandButton con NOMBRE: Command1
-Un ListBox con NOMBRE: List1

Este debería ser el código ejecutado desde el evento Click del Command1:

'----------
'código
'----------

Private Sub Command1_Click()
Directory = "C:\PROGRAMANET\PERROS\MENSUAL\01\"
r = 1
f = Dir(Directory, 7)
Do While f <> ""
r = r + 1
f = Dir()
List1.AddItem f 'Esto añade el archivo actual en el ListBox
Loop
List1.AddItem Directory 'Esto añade el directorio como último elemento
End Sub

'----------
'código
'----------

Los errores eran que el evento Click listado en mi anterior respuesta hacía referencia a un CommandButton llamado CommandButton1, con lo cual, si habías tomado nota de mis instrucciones anteriores en las que indicaba que el nombre del CommandButton era Command1, entonces, al Clickar el botón no pasaría nada, puesto que haría referencia al Command1, evento Click del mismo no habíamos declarado.

Este código que te he dado debería funcionar correctamente (al menos, así creo).
Si no funciona, debería ser oportuno considerar la línea 4 del código que te he dado:

f = Dir(Directory, 7)

Con el número 7 que das como segundo parámetro a la función Dir, estás indicándole que liste SOLO los archivos que tengan los atributos:

-Sólo lectura (vbReadOnly = 1)
-Oculto (vbHidden = 2)
-Archivo del sistema (vbSystem = 4)

Sería muy importante considerar esto, puesto que estoy seguro que se trata del origen del error.

Comprueba que el directorio pasado existe y que realmento contiene archivos.

De momento prueba con esto. Si siguen los problemas, comunícalo a ver si puedo seguir ayudándote.

Hasta otra,

Zoto
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:Intenta otra vez

Publicado por solitario (12 intervenciones) el 15/09/2005 19:26:52
prueba con esto :
f = Dir(directory, vbDirectory)
o
f = Dir(directory, 16)
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

MUCHAS GRACIAS, YA FUNCIONA

Publicado por MARKITOS (49 intervenciones) el 16/09/2005 10:56:46
Muchas gracias a los dos, el problema radicaba en f = Dir(directory, 16) , al quitar el 7 y poner el 16, funciona perfectamente.

Gracias masters.
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:no es esto mas facil?

Publicado por jose carlos (340 intervenciones) el 16/09/2005 15:28:57
el filelistbox es FILE

escribe estas dos linea

FILE.PATTERN="*.*"
FILE.PATH="C:\DIRECTORIO\QUE QUIERES\CARGAR"

automáticamente te saldrán todos los archivos, si solo quieres los JPG, por ejemplo, pon en FILE.PATTERN="*.JPG"

Saludos
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