Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/12/2015, 08:38
El_fenix
 
Fecha de Ingreso: junio-2006
Mensajes: 137
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Descargar archivo desde FTP con solo parte del nombre

Hola, ya lo resolvi. Por si a alguien le sirve dejare el codigo por aca.

Lo que hice fue hacer un List al directorio, almacenar el resultado en un datatable y luego filtre ese datatable. Simple a fin de cuentas.

Código PHP:
 Private Function GP_Descargar_Directorio(ByVal archivo As StringByVal ruta As StringByVal User As StringByVal pass As String) As String
        Dim tabla 
As New DataTable
        Dim tbl 
As New DataTable
        Dim fila 
As DataRow
        Dim columna 
As DataColumn
        Dim f
() As DataRow
        Dim filtro 
As String

        Dim indice 
As Integer 0
        Dim ftp 
As FtpWebRequest CType(FtpWebRequest.Create(ruta), FtpWebRequest)
        
Dim cred As New NetworkCredential(Userpass)
        
ftp.Credentials cred
        ftp
.KeepAlive False
        ftp
.AuthenticationLevel Security.AuthenticationLevel.MutualAuthRequested
        ftp
.Method WebRequestMethods.Ftp.ListDirectoryDetails
        
'ftp.Method = WebRequestMethods.Ftp.
        '
ftp.Proxy Nothing
        Dim ftpresp 
As FtpWebResponse DirectCast(ftp.GetResponseFtpWebResponse)

        
'Creamos la estructura de la tabla
        columna = New DataColumn("archivo", Type.GetType("System.String"))
        tabla.Columns.Add(columna)

        Dim sreader As New IO.StreamReader(ftpresp.GetResponseStream)
        Ddl_archivos.Items.Clear()
        While Not sreader.Peek = -1
            Dim ftpList As String() = sreader.ReadLine.Split(" ")
            Dim ftpfile As String = ftpList(ftpList.GetUpperBound(0))

            fila = tabla.NewRow
            fila.Item("archivo") = ftpfile.ToString

            tabla.Rows.Add(fila)

            Ddl_archivos.Items.Insert(indice, New ListItem(ftpfile.ToString, ftpfile.ToString))
            indice += 1
        End While

        filtro = "archivo like '" & archivo & "
%"
        f = tabla.Select(filtro)

        tbl = tabla.Clone
        For Each dr As DataRow In f
            tbl.ImportRow(dr)
        Next

        Ddl_archivos.DataTextField = "
archivo"
        Ddl_archivos.DataValueField = "
archivo"

        Ddl_archivos.DataSource = tbl
        Ddl_archivos.DataBind()

        ftpresp.Close()

        Return Ddl_archivos.SelectedItem.Text

    End Function 
Saludos a todos.