Bueno, he dado con una solución que funciona a las maravillas .La pongo en común porque a mucha gente le hará falta ;)
La función en si lista del FTP los directorios que hay dentro de un directorio FTP pasado por parámetro y devuelve en un array String, en cada posición el nombre de cada uno de los directorios que hay dentro del directorio deseado. Aquí el código
Código:
Public Function listarFTP(ByVal dir As String) As String()
'Lista un directorio FTP devolviendo los directorios que tiene
Dim dirFtp As FtpWebRequest = CType(FtpWebRequest.Create(RutaDirectorioFTP), FtpWebRequest)
' Los datos del usuario (credenciales)
Dim cr As New NetworkCredential(UserName, Password)
dirFtp.Credentials = cr
' El comando a ejecutar
dirFtp.Method = "LIST"
' También usando la enumeración de WebRequestMethods.Ftp
dirFtp.Method = WebRequestMethods.Ftp.ListDirectory
' Obtener el resultado del comando
Dim reader As New StreamReader(dirFtp.GetResponse().GetResponseStream())
'Rellenamos un Array con cada uno de las líneas del Reader que contendrán los nombres de los directorios
Dim iContadorDirec As Integer = 0
Dim ArrayDirectorios() As String
Do
Dim Directorio As String = reader.ReadLine
ReDim ArrayDirectorios(iContadorDirec)
ArrayDirectorios(iContadorDirec) = Directorio
iContadorDirec = iContadorDirec + 1
If reader.EndOfStream = True Then Exit Do
Loop
'Devolvemos el array con los directorios
Return ArrayDirectorios
' Cerrar el stream abierto.
reader.Close()
End Function