El dijo explicitamente que no se lo hiciera.
Bien yo tambien estoy trabajando en un file manager.
Lo que dijo seth es la mitad de lo que debes hacer
(servidor) Para visualizar carpetas haces un ciclo para que enliste todos los nombres de os archivos y carpetas de la particion luego haces otro ciclo for que cuente los item de la lista y los meta en un split array y lo mandas mas o menos asi.
dim enviar as string
enviar="listar|carpetasyarchivos|" & list1.count & "|"
for i=1 to list1.count
enviar = enviar & lis1.item(i)
next
(cliente)Luego en el cliente (tu) haces algo como esto
dim entrada as string
dim split as string
dim numero as integer
winsock.getdata entrada
split=split(entrada,"|")
case split(0)
case "listar"
if split(1)="carpetasyarchivos" then
for i=1 to split(2)
numero=i + 2
list1.additem data(numero)
next
end if
Seria mas o menos asi, no copies y pegues que lo hice aqui rapidito y esta incompleto es nada mas un ejemplo; tambien que esto se debe hacer dentro del evento adecuado

salu2