![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
20/08/2003, 14:22
|
| | Fecha de Ingreso: agosto-2002
Mensajes: 16
Antigüedad: 22 años, 6 meses Puntos: 0 | |
Funciones en cascada Las funciones en cascada son esas que se invocan a si mismas (peligrosas porque pueden entrar en un bucle infinito en el que van creando copias de si mismas saturando la memoria), típicas para recorrer directorios. Se inicia con una semilla (el directorio raíz) y por cada carpeta que encuentran se invocan a si mismas para realizar las mismas operaciones cada vez. Aquí tienes un ejemplo:
Código:
Private Sub Form_Load()
Carpeta "C:\"
End Sub
Function Carpeta(ByVal Ruta As String)
Dim fso, dir, ds, d, fs, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set dir = fso.getfolder(Ruta)
Set fs = dir.files
For Each f In fs
'f es un objeto que representa un archivo
'Por ejemplo, puedes usar su nombre:
MsgBox f.Name
Next
Set ds = dir.subfolders
For Each d In ds
'd es un objeto que representa una carpeta
'Por ejemplo, puedes usar su nombre:
MsgBox d.Name
'Ahora invocamos de nuevo esta función para
'cada carpeta
Carpeta Ruta & IIf(Right(Ruta, 1) = "\", "", "\") & d.Name
Next
End Function
|