Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Psyke1 en 26 Noviembre 2012, 10:36 am



Título: Enumerar carpetas de una carpeta compartida
Publicado por: Psyke1 en 26 Noviembre 2012, 10:36 am
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
  1. Private Sub Form_Load()
  2.    Dim f As Object, s
  3.  
  4.    Set f = CreateObject("Scripting.FileSystemObject")
  5.  
  6.    For Each s In f.GetFolder("\\micarpeta\hola").SubFolders
  7.        MsgBox s
  8.    Next
  9. End Sub

He encontrado los apis WNetEnumResource(), WNetOpenEnum(), WNetCloseEnum(), WNetOpenEnum().
Código:
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


Título: Re: Enumerar carpetas de una carpeta compartida
Publicado por: Psyke1 en 26 Noviembre 2012, 18:57 pm
Lo solucioné y comparto el código porque soy buena persona. :silbar:
Código:
http://foro.elhacker.net/programacion_visual_basic/src_getsharesubfolders-t377004.0.html

DoEvents! :P