Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: EstoyBaneado en 25 Agosto 2005, 01:31 am



Título: Code: Listar los archivos de un directorio (subdirectorios incluidos)
Publicado por: EstoyBaneado en 25 Agosto 2005, 01:31 am
2 Moneda)
Muchas veces y por diversas razones que no vienen al tema, queremos listar todos los archivos de un directorio. Podemos utilizar el FSO, pero... ¿por que hacerlo si podemos hacerlo directamente desde el visual basic?

Declaramos un array en la cabezera del formulario:

Private direcs()    As String

En ese array se guardaran los archivos listados. Luego, la funcion:

Código:
Function ListFiles(Path)
'On Error Resume Next
Dim x() As String
Dim a As Integer
Dim sf As String
Dim u As Integer
If Right(Path, 1) <> "\" Then Path = Path & "\"
ReDim x(a)
sf = Dir(Path, vbHidden + vbArchive + vbReadOnly + vbSystem + vbNormal + vbDirectory)
Do While Len(sf) <> 0
    If sf <> "." And sf <> ".." Then
        sf = Path & sf
        If GetAttr(sf) And vbDirectory Then
            x(a) = sf
            ReDim Preserve x(a + 1)
            a = a + 1
        Else
            u = UBound(direcs)
            ReDim Preserve direcs(u + 1)
            direcs(u) = sf
        End If
    End If
    sf = Dir()
Loop

For a = 0 To UBound(x)
If Len(x(a)) Then ListFiles x(a)
Next
End Function

Y para llamarla, se hace asi:
Código:
        ReDim direcs(0) 'El array a 0
        Call ListFiles(path_del_directorio) 'listar los archivos del directorio

        For s = 0 To UBound(direcs) - 1 'Desde el primer archivo hasta el ultimo
            Call infectar(direcs(s)) 'Infectamos el archivo, lo borramos o lo que se nos de la gana.
        Next

El code se puede mejorar aun mas. Aclaro que no soy el dueño.

Salu2.