Foros del Web » Programando para Internet » ASP Clásico »

Recorrer una coleccion 2 (dos) veces...

Estas en el tema de Recorrer una coleccion 2 (dos) veces... en el foro de ASP Clásico en Foros del Web. Hola :) Hice una paginita que simplemente lee los archivos y carpetas de un directorio y los muestra en un formato bonito. El problema es ...
  #1 (permalink)  
Antiguo 16/08/2002, 14:25
Avatar de DanielRey
Usuario no validado
 
Fecha de Ingreso: enero-2001
Ubicación: Mendoza
Mensajes: 630
Antigüedad: 24 años, 3 meses
Puntos: 1
Recorrer una coleccion 2 (dos) veces...

Hola :)

Hice una paginita que simplemente lee los archivos y carpetas de un directorio y los muestra en un formato bonito.

El problema es que al usar el comando "For Each" debo recuperar las carpetas por un lado con el método "SubFolders" y los archivos por otro con "Files".

No hay problema, me dije, recorro dos veces la colección y ya está. :)

ERROR. :( Cuando recorro la colección, parece que usa algún tipo de apuntador interno que queda mirando al final y cuando quiero volver a usar el For Each, "peta"

Lo he solucionado "provisoriamente" creando dos objetos que apuntan a la misma carpeta, uno lo recorro para las carpetas y luego recorro el otro en busca de los archivos

Si bien funciona, no me parece adecuado ni elegante ni nada, me parece una chastrinada

¿Alguien sabe si se puede volver a cero el apuntador y como hacerlo?

Esto es un fragmento del código que estoy usando ahora:
Código:
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
  
Set filesFolder = objFSO.GetFolder(ruta)
Set foldersFolder = objFSO.GetFolder(ruta)

For Each objFolder in foldersFolder.SubFolders
Response.Write objFSO.GetFileName(objFolder)
Next
For Each objFile in FilesFolder.Files
Response.Write objFSO.GetFileName(objFile)
Next
Gracias ;)

<table><tr><td><IMG src=banderas/argentina.gif></td><td><small>Alta en el cielo, un águila guerrera<br>audaz se eleva, en vuelo triunfal.<br>Azul un ala, del color del cielo.<br>Azul un ala, del color del mar.</small></td></tr></table>
  #2 (permalink)  
Antiguo 16/08/2002, 14:54
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Re: Recorrer una coleccion 2 (dos) veces...

Hola Dani, yo tengo algo así:


Código:
Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set Carpeta = FSO.GetFolder(Server.MapPath(Ruta))
Set ArchivosDelDir = Carpeta.Files
Set Subcarpetas = Carpeta.SubFolders


For Each SubCarpeta in Subcarpetas
SubCNombre = Subcarpeta.Name
SubCPeso = Subcarpeta.Size 'esto está al dope porque no funciona :(

'acá hay ASP intercalado en HTML que no viene al caso
'pero la idea es mostrar las carpetas

Next

For Each Archivo in ArchivosDelDir
Archivos = Archivo.name
Peso = Archivo.Size 'esto si que funca ;)

'acá hay ASP intercalado en HTML que no viene al caso
'pero la idea es mostrar los archivos

Next
  #3 (permalink)  
Antiguo 16/08/2002, 16:21
Avatar de DanielRey
Usuario no validado
 
Fecha de Ingreso: enero-2001
Ubicación: Mendoza
Mensajes: 630
Antigüedad: 24 años, 3 meses
Puntos: 1
Re: Recorrer una coleccion 2 (dos) veces...

Voy a empezar a pensar que si Dazuaga no lo sabe, es porque en ASP no se puede hacer;)

Garciosísimas Diego.
You are the best!!
  #4 (permalink)  
Antiguo 16/08/2002, 16:38
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Re: Recorrer una coleccion 2 (dos) veces...

no seas güebón, que no soy ningún genio

lo que no entendí es si:

A) No querés crear dos instancias a &quot;GetFolder&quot; o..

B) Pretendés recorrer las dos colecciones (filesFolder y foldersFolder) con un solo For Each

Si es la &quot;A&quot;, fijate que yo uso una sola instancia a GetFolder
Si es &quot;B&quot;... NO LO SE
  #5 (permalink)  
Antiguo 19/08/2002, 08:01
Avatar de DanielRey
Usuario no validado
 
Fecha de Ingreso: enero-2001
Ubicación: Mendoza
Mensajes: 630
Antigüedad: 24 años, 3 meses
Puntos: 1
Re: Recorrer una coleccion 2 (dos) veces...

La pregunta era &quot;B&quot;, pero &quot;A&quot; me parece lo suficientemente buena, de todos modos, si alguien por ahí sabe si se puede y como se hace &quot;B&quot;, soy todo oidos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:50.