Visual Basic - Listar archivos dentro de una carpeta

Life is soft - evento anual de software empresarial
 
Vista:

Listar archivos dentro de una carpeta

Publicado por Jamec (231 intervenciones) el 23/08/2006 21:20:37
Como puedo listar los archivos que de encuentran dentro de una carperta, para luego eliminarlos y por ultimo eliminar la carpeta, yo se que con el FileListBox se pueden listar, pero no quiero usarla, pues esto se haria por debajo, para que el usuario no se de cuenta, se que con alguna(s) Api se pueden listar, pero no se cual en especifico.

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:Listar archivos dentro de una carpeta

Publicado por The Emulator (96 intervenciones) el 23/08/2006 22:00:17
Hola
Pues lo que necesitas no es muy complicado y lo puedes hacer sin necesitad del API de windows lo unico que necesitas es usar la funcion Dir te coloco un ejemplo de como se usa.

Coloca en un formulario un listbox y un boton con el siguiente codigo

'----------------------------------------------------------------
Private Sub Command1_Click()
Dim Ruta As String
Dim Archivo As String
Ruta = "C:\*.*"
Archivo = Dir(Ruta, vbArchive)
While Archivo <> ""
List1.AddItem Archivo
Archivo = Dir
Wend
End Sub
'----------------------------------------------------------------

Te lo explico en.
en la variable Ruta se almacena la carpeta en la que se quiere listar en este caso C:\ puede ser tambien c:\TuCarpeta\

Junto con la ruta hay que especificar que timpo de archivo se quiere listar por ejemplo *.exe *.zip en nuestro ejemplo *.* para que traiga todos los archivos

Luego en la variable Archivo es donde se gurdara el nombre del archivo que se esta listando en ese momento.

Para inicializar el listado de archivo usamos la sigiente linea

Archivo = Dir(Ruta, vbArchive)
Con esta le decimo que nos liste el archivos (el parametro vbArchive le indica a vb que debe buscar solo archivos normales ya que sin este nos traeria carpetas)

una vez que ya se inicia el filtro lo unico que tenemos que hacer es un ciclo hasta que no hayan mas archivos con esa extencion

While Archivo <> ""
List1.AddItem Archivo
Archivo = Dir
Wend

Cuando la variable Archivo este basia significa que no hay mas archivos para listar

Espero haber sido de ayuda

Saludos
http://www.theemulator.tk
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:Listar archivos dentro de una carpeta

Publicado por Jamec (231 intervenciones) el 23/08/2006 22:21:42
No me funciona el codigo, me tira un error de compilación No conciden los tipos y es en la linea donde por primera vez a Archivo se le asigna Dir

Te adjunto el codigo para que revises
Public Sub EliminarArchivos(DirCarpeta As String)
Dim Ruta As String
Dim Archivo As String
Ruta = DirCarpeta & "\*.*"
Archivo = Dir(Ruta, vbArchive)
While Archivo <> ""
FrmPrueba.List1.AddItem Archivo
Archivo = Dir
Wend
End Sub
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:Listar archivos dentro de una carpeta

Publicado por The Emualtor (96 intervenciones) el 24/08/2006 01:33:10
Hola

Pues ya probe el codigo que me pasaste y no bota ningun error

Para probarlo de nuevo crear un formulario nuevo coloca un listobox un button y pega este codigo

Private Sub Command1_Click()
EliminarArchivos "C:"
End Sub

Public Sub EliminarArchivos(DirCarpeta As String)
Dim Ruta As String
Dim Archivo As String
Ruta = DirCarpeta & "\*.*"
Archivo = Dir(Ruta, vbArchive)
While Archivo <> ""
List1.AddItem Archivo
Archivo = Dir
Wend
End Sub


Saludos
http://www.theemulator.tk
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

GRACIAS

Publicado por Lucyfer (140 intervenciones) el 21/05/2009 20:30:51
me funciono perfectamente
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
Imágen de perfil de JOSE
Val: 58
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Listar archivos dentro de una carpeta

Publicado por JOSE (36 intervenciones) el 23/10/2021 00:09:58
el ejercicio funciona perfecto , pero hay una cosa si seria posible que solo busque por dos o varias extensiones ,he probado con pdf y *.* pero solo me funciona por separado la idea es que me busque por jpj y pdf a la vez ,,pero solo tengo una opcion ,¿alguna idea ???
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
sin imagen de perfil
Val: 145
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Listar archivos dentro de una carpeta

Publicado por Sah1d Ra (191 intervenciones) el 23/10/2021 05:12:05
1
2
3
4
5
6
7
8
9
PublIc FunctIOn ElImInarArchIvOs(DIrCarpeta As StrIng, ExtensIOn as strIng)
 DIm ArchIvO As StrIng
 Ruta = DIrCarpeta & IIf(rIght(DIrCarpeta, 1) <> "\", "\", "") & "*." & ExtensIOn
 ArchIvO = DIr(Ruta, vbArchIve)
 WhIle ArchIvO <> ""
  If ArchIvO <> "." and ArchIvO <> ".." then LIst1.AddItem ArchIvO
  ArchIvO = DIr
 Wend
End Sub

Saludos, espero te sirva la modificación, y felices líneas de programac10n.
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
sin imagen de perfil
Val: 145
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Listar archivos dentro de una carpeta

Publicado por Sah1d Ra (191 intervenciones) el 23/10/2021 05:20:52
1
2
3
4
5
6
7
8
9
10
11
12
PublIc FunctIOn ElImInarArchIvOs(DIrCarpeta As StrIng, ExtensIOn as strIng, xLB as LIstBOx, OptIOnal LImpIar as bOOlean = false)
 DIm ArchIvO As StrIng
 DIrCarpeta = DIrCarpeta + IIf(rIght(DIrCarpeta, 1) <> "\", "\", "")
 Ruta = DIrCarpeta &  & "*." & ExtensIOn
 ArchIvO = DIr(Ruta, vbArchIve)
 If LImpIar then xLB.clear
 Do WhIle ArchIvO <> ""
 ' If ArchIvO <> "." and ArchIvO <> ".." then xLB .AddItem DIrCarpeta + ArchIvO'Agrega la ruta completa y el archivo.
  If ArchIvO <> "." and ArchIvO <> ".." then xLB .AddItem ArchIvO ' Agrega solo el nombre del archivo.
  ArchIvO = DIr
 End dO
End Sub

Se modifico para que se pueda indicar el Listbox donde se cargaran los datos, y tienes la opcion de eliminar limpiar el Listbox o no para seguir acumulando un listado de archivos.

saludos y felices líneas de porgramac10n.
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