Listando unidades, directorios y particiones en un listbox

Iniciado por Snort, 10 Noviembre 2006, 22:21 PM

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

Snort

   Wenaaas, yo otra vez molestando por aqi (xD), vereis, tengo un file manager qe me funciona bastante bien, pero tiene un problema, los archivos qe salen en la raiz de las particiones se listan con // en vez de /, mejor pongo el codigo...
Public Function rutad(ruta As String)
If ruta = "" Then 'si enviamos "" vemos las 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(150)
Next
Else
Dir1.path = ruta
For i = 0 To Dir1.ListCount - 1
'=
ws.SendData "\list" & Form1.Dir1.List(i) & "\"
Call Sleep(150)
Next
File1.path = ruta
For i = 0 To File1.ListCount - 1
titulo = File1.path
ws.SendData "\list" & File1.path & "\" & File1.List(i)
Call Sleep(150)
Next
End If
Exit Function
End Function

   Pues eso, aqi va todo bien pero los archivos qe hay guardados en c:/, d:/, a:/... (sin subcarpetas, en el filelistbox) salen con //.
   Lo mas normal para solucionarlo seria poner: ws.SendData "\list" & File1.path & File1.List(i) en vez de ws.SendData "\list" & File1.path & "\" & File1.List(i) pero si lo pongo asi lo qe pasa es qe en cualqier directorio qe contenga archivos salen sin /, por ejemplo en la carpeta C:/cosa/ tengo el archivo Captura.jpg, pues en la lista sale como C:/cosaCaptura.jpg, y asi no puedo hacerle nada desde el cliente porqe la ruta esta eqivocada... :huh: :huh: :huh:
Alguien me puede exar una manita???

Graxias

newton_gedzac

El problema esq el path de los discos duros tiene un \ al final, por ejemplo, C:\, pero el path de las carpetas no, por ejemplo C:\Carpeta. Para solucionarlo comprueba si el directorio es una unidad o una carpeta viendo su longitud, y sólo si su longitud es mayor de 3 le añades el \. Por ejemplo:

If Len(Dir1.Path) = 3 Then
MsgBox Dir1.Path, vbOKOnly, ""
Else
MsgBox Dir1.Path & "\", vbOKOnly, ""
End If

CeLaYa

que no resia mejor comprobar si el directorio termina en "\"?



if right(ruta ,1) <> "\" then ruta = ruta + "\"

asi le agregas "\" en donde te haga falta
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

Snort