Ayuda con el codigo de mi file manager !!!!!

Iniciado por Snort, 30 Octubre 2006, 20:31 PM

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

Snort

   Vamos a ver, buscando y buscando como hacer un file manager con mis pocos conocimientos de vb, al final lo hice como pone en el manual de Xenon, la explicacion de Scugat creo qe es.
   Al cargar un formulario, aparecen las particiones de la maqina remota en un listbox directamente y luego al hacre doble click deberia ir explorando el disco, pero siempre qe hago doble click en alguna particion, o en a: sin diskette,o en el lector de cds sin cd me sale lo mismo, la lista de archivos de la ruta donde se ejecuta el server (filelistbox). Bueno, pues aqi os dejo los codigos por si alguien me puede ayudar:
Server:
dim datos as integer
Private Sub WS_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
ws.GetData datos
If Left(datos, 6) = "\rutad" Then Call rutad(Mid(datos, 7))
End Sub

'Me parece qe esto no es necesario, pero ya no se qe probar
Private Sub Dir1_Change()
On Error Resume Next
File1.path = Dir1.path
End Sub
Private Sub Drive1_Change()
On Error Resume Next
Dir1.path = Drive1.Drive
End Sub

Public Function rutad(ruta As String)
On Error Resume Next
If ruta = "" Then 'Si enviamos "" vemos particiones
Dim i As Integer
For i = 0 To Drive1.ListCount - 1
ws.SendData "\list" & Drive1.List(i) & "\" 'enviamos "\list" y la ruta de todos los drive
Call Sleep(250)  'La funcion de sleep funciona perfectamente (Por si ay dudas)
Next
Else
Dir1.path = ruta
For i = 0 To Dir1.ListCount - 1
'=
ws.SendData "\list" & Form1.Dir1.List(i) & "\"
Call Sleep(250)
Next
File1.path = ruta
For i = 0 To File1.ListCount - 1
ws.SendData "\list" & File1.path & File1.List(i)
Call Sleep(250)
Next
End If
Exit Function
End Function



Cliente:

Private Sub form_load()
ws.SendData  "\rutad" & ""
End Sub
Private Sub List1_DblClick()
If FormTrans.List1.Text = ".." Then 'Vuelve a las particiones
ws.SendData "\rutad" & ""
List1.Clear
Else
FormTrans.MnuMngrVer_click
End If
End Sub
Public Sub MnuMngrVer_click()
ws.SendData "\rutad" & List1.Text
Text1.Text = List1.Text
List1.Clear
List1.AddItem ".."
End Sub
Private Sub WS_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim datos As String
ws.GetData datos
If Mid(datos, 1, 5) = "\list" Then List1.AddItem (Mid(datos, 6))
End Sub


Bueno, pues a ver si encontrais el error, porqe yo ya me estoi volviendo loco

   Muchiiiiiisimas gracias a todos, me estais ayudando un puñao, en serio, gracias :-* :-*

fraktal

Prueba a quitar el On error Resume Next y mira al ejecutar que te sale. Quiza esta pasando que existe un error y te pasa a la siguiente linea, con lo cual no te enteras el error. SI no tienes un diquete medito en A, normalmente te dara un error a no se que crees una funcion para el tratamiento de errores, por eso me da que pensar que te esta dando un error y te esta pasando a la siguiente linea sin que te enteres. Quitalos y mira que ocurre sin ellos para ver donde esta el fallo. Por otra parte, estas usando el commond dialog para el server?, es que he intentado leer asi el codigo y como no explicar que as usado, me cuesta saber como lo as exo.
Si te sirve de ayuda, yo empleo la funcion DIR para el explorador remoto y va bien, ni common dialog ni nada, y si esto que usas es el drivelistbox etc, yo eso lo uso pero para el cliente para la parte de explorar mis propios archivos que es mas rapido y al lado un TreeView recibiendo los datos del servidor, obtenidos todos mediante DIR.
Saludos.

Snort

   Aver, le he qitado lo del on error resume next, y lo unico eq he conseguido es qe al hacer click en una unidad de disco, me salga la lista vacia con unicamente el ".." para volver, pero sin NINGUN error. Despues de volver a releerme el codigo otras 100 veces le qitado el "\" para enviar las unidades, es decir he puesto
ws.SendData "\list" & Drive1.List(i)
en vez de:
ws.SendData "\list" & Drive1.List(i) & "\"
y al parecer se habia solucionao el problema, entro en c:/ y... perfecto!!!, pero luego entro en d:/ y me vuelve a salir la lista de archivos de antes (la del directorio de ejecucion del server.
   Algo raro de la ostia...

  Por cierto en el server tengo un drivelist, un dirlist, y un filelist, y en el cliente unicamente uso el listbox. Tambien he puesto algunos textbox para ver las variables, y por ejemplo la variable ruta siempre es "", cosa qe no me explico... Bueno pues gracias por la respuesta seguire releyendo el codigo....