SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: bea en Lunes 1 de Septiembre de 2003, 11:53
-
Hola
Estoy utilizando el componente Inet de Visual Basic para hacer FTP pero no me borra carpetas del servidor. El codigo que utilizo es:
Public Function borraCarpeta(ByVal ruta As String, ByRef sError As String) As Boolean
On Error GoTo borraCarpetaError
borraCarpeta = False
gobjFTP.Execute , "RMDIR " & ruta
Call pWaitForResponse
borraCarpeta = True
Exit Function
borraCarpetaError:
End Function
Alguien sabe cual es el error?
Muchas gracias
-
¿Estará vacía la carpeta?
Mira a ver. Suerte.
-
Me parece que si estás en FTP debes de enviar el comando DEL...
-
La carpeta no esta vacia. Dentro tengo archivos y otras subcarpetas.
¿tiene que estar vacia la carpeta?
-
Exacto. La carpeta no puede contener archivos ni otras carpetas (igual que con el 'RD' de D.O.S.).
Suerte.
-
Pues es que el problema es que exactamente no se lo que tengo en la carpeta que quiero crear, se que tengo archivos y subcarpetas pero no se como se llaman.
¿Puedo hacer algun tipo de bucle que me recorra lo que hay en la carpeta en el servidor?
Muchas gracias Brroz
-
Podrías hacer algo de este estilo:
Private Sub BorrarFilesRtvDires(Byval ViaDeAcceso As String, Directorios() As String)
Dim strDir as String
strDir = Dir(ViaDeAcceso)
Dim lng1 As Long
Do Until strDir = ""
If (GetAttr(ViaDeAcceso & strDir) And vbDirectory) = vbDirectory Then
lng1 = lng1 + 1
ReDim Preserve Directorios(lng1)
Directorios(lng1) = strDir
Else
Kill ViaDeAcceso & strDir
End If
Dir
Loop
End Sub
Esta sub borraría los archivos del directorio que le especifiques y devolvería como elementos de la matriz 'Directorios' las carpetas que contenga (fíjate que es un argumento 'ByRef'
). Empleándolo recursivamente, podrías eliminar todos los archivos y carpetas. ¡Úsalo con tiento!
Suerte.
-
Pero esto me vale para el servidor?
Lo que quiero es recorrer una carpeta del servidor (que si que se donde esta) pero lo que no se es el nombre de los archivos y carpetas que tiene dentro, y esto es lo que quiero borrar
Vaya lio que tengo...:question:
-
En tu ejemplo incluyes esta línea:
gobjFTP.Execute , "RMDIR " & ruta
La vía de acceso que debes especificar es 'ruta'.
A ver si ahora... Chao.
-
Que no me sale. Es que el procedimiento que me has dicho antes es para local no?
Por que para hacer lo de dir en el servidor haya que poner
Inet1.Execute , "DIR BuscaEsto.txt"
Por favor me lo podrias aclarar un poco mas. Muchas gracias y perdona:)
-
Efectivamente, disculpas, tienes razón... se me olvidaba que estas utilizando un control iNet. La solución que te daba sería válida siempre que pudieras tener acceso a esa carpeta como recurso compartido, asignándola a una letra de unidad, o refiriéndose a la ruta directamente (ServidorRuta).
De otra forma, como muy bien indicas abría que utilizar el comando FTP 'dir' y/o los comandos 'ls' o 'mls' para mostrar el contenido de uno o varios directorios respectivamente.
Suerte.