Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Snort en 10 Noviembre 2006, 22:21 pm



Título: Listando unidades, directorios y particiones en un listbox
Publicado por: Snort en 10 Noviembre 2006, 22:21 pm
   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...
Código:
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:
Código:
ws.SendData "\list" & File1.path & File1.List(i)
en vez de
Código:
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


Título: Re: Listando unidades, directorios y particiones en un listbox
Publicado por: newton_gedzac en 10 Noviembre 2006, 23:16 pm
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:
Código:
If Len(Dir1.Path) = 3 Then
MsgBox Dir1.Path, vbOKOnly, ""
Else
MsgBox Dir1.Path & "\", vbOKOnly, ""
End If


Título: Re: Listando unidades, directorios y particiones en un listbox
Publicado por: CeLaYa en 11 Noviembre 2006, 16:22 pm
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


Título: Re: Listando unidades, directorios y particiones en un listbox
Publicado por: Snort en 12 Noviembre 2006, 14:33 pm
OK, gracias por las respuestas, ya lo he solucionao

 :-* :-* :-* :P