Enumerar carpetas de una carpeta compartida

Iniciado por Psyke1, 26 Noviembre 2012, 10:36 AM

0 Miembros y 1 Visitante están viendo este tema.

Psyke1

Me estoy volviendo loco... :huh:
Necesito extraer todas las carpetas que contenga la carpeta compartida "\\micarpeta\".
Tan sólo para saber si existe ya he tenido problemas puesto que devuelve false utilizando métodos tradicionales. Eso lo he solucionado con api PathIsNetworkPath().

En cambio puedo listar las carpetas de una subcarpeta suya:
Código (vb) [Seleccionar]

Private Sub Form_Load()
    Dim f As Object, s
   
    Set f = CreateObject("Scripting.FileSystemObject")
   
    For Each s In f.GetFolder("\\micarpeta\hola").SubFolders
        MsgBox s
    Next
End Sub


He encontrado los apis WNetEnumResource(), WNetOpenEnum(), WNetCloseEnum(), WNetOpenEnum().
http://allapi.mentalis.org/apilist/2AA74BB4AC857C52AD4BC7FA9E4DB1B7.html

Pero es extremaaaaaadamente lento... :(
Así que me comprometo a levantar un monumento a quién me sepa guiar/dar una solución. :-*

DoEvents! :P

Psyke1

Lo solucioné y comparto el código porque soy buena persona. :silbar:
http://foro.elhacker.net/programacion_visual_basic/src_getsharesubfolders-t377004.0.html

DoEvents! :P