Oppure

Loading
08/12/09 21:14
noitide
Buona sera a tutti. ho questo problema: ho la necessità di ricavare una lista di cartelle da un server e poi all'interno di ognuna di questa cartella devo capire se un file esiste, così ho scritto questo codice
Dim asd As FtpWebRequest = FtpWebRequest.Create("ftp://......../TeamSpeak/")
    Dim sps As New WebClient With {.Credentials = New NetworkCredential("user", "password")}
        asd.Credentials = New NetworkCredential("user", "password")
        asd.Method = WebRequestMethods.Ftp.ListDirectory
        Dim leggi As New StreamReader(asd.GetResponse.GetResponseStream)
        Dim tot() As String = leggi.ReadToEnd.Split(vbCrLf)
        For Each a As String In tot
            Try
                sps.DownloadString("ftp://....../TeamSpeak/" + a + "/Stevenking.txt")
                ComboBox1.Items.Add(a)
            Catch ex As Exception
                TextBox1.Text = (ex.Message)
            End Try
        Next

il problema è ke questo codice sembra funzionare solo una volta, cioè mi spiego meglio: il ciclo for sembra venga eseguito una sola volta e a tutte le volte successive alla riga
sps.DownloadString("ftp://....../TeamSpeak/" + a + "/Stevenking.txt")

mi da questo errore: "Errore del server remoto: (500) Errore di sintassi. Comando non riconosciuto.."
cosa sbaglio? posso controllare l'esistenza del file in un modo più comodo e intelligente?
(ho già provato con webrequest ma anke li mi da lo stesso errore) grazie 1000...


P.S. qualcuno saprebbe poi consigliarmi una buona dll per gestire le connessioni ftp (tipo chilkat .net) grautita? sempre che esistano.. grazie
Ultima modifica effettuata da noitide 09/12/09 14:43
aaa
09/12/09 15:55
Il Totem
Forse perchè chiedi di elencare le directory contenute nel file .txt, il che è impossibile, dato che un file non contiene cartelle.
Prova WebClient con questo codice:
msdn.microsoft.com/it-it/library/…(VS.80).aspx
aaa
09/12/09 16:07
noitide
Postato originariamente da Il Totem:

Forse perchè chiedi di elencare le directory contenute nel file .txt, il che è impossibile, dato che un file non contiene cartelle.
Prova WebClient con questo codice:
msdn.microsoft.com/it-it/library/…(VS.80).aspx


cioè? non ho capito cosa intendi dire. (avevo già anke provato con ftpwebrequest ma non cambia nulla). comnq il problema ke ho è capire se un file (.txt) esiste o no su un server e io provo a usare quella struttura try con downloadstring in modo che mi restituisca un'eccezione dovuta al filenotfound. ma purtroppo si inceppa prima.
aaa
09/12/09 16:10
Il Totem
stackoverflow.com/questions/347897/…
Comunque avevo scritto WebClient e non WebRequest.
aaa
09/12/09 16:22
noitide
Postato originariamente da Il Totem:

stackoverflow.com/questions/347897/…
Comunque avevo scritto WebClient e non WebRequest.

allora.. ho modificato così il ciclo For il resto l'ho lasciato invariato
For Each a As String In tot
            Dim sps As FtpWebRequest = WebRequest.Create("ftp://spsracing.net/httpdocs/spsync/TeamSpeak/" + a + "/Stevenking.txt")
            sps.Credentials = New NetworkCredential("user", "password")
            sps.Method = WebRequestMethods.Ftp.GetFileSize
            Try
                Dim response As FtpWebResponse = sps.GetResponse
                ComboBox1.Items.Add(a)
            Catch ex As WebException
                Dim response As FtpWebResponse = ex.Response
                If response.StatusCode = FtpStatusCode.ActionNotTakenFileUnavailable Then
                    MsgBox("file inesistente")
                End If
                MsgBox(ex.Message)
            End Try
        Next

purtroppo però da ankora lo stesso errore, cioè non genera l'eccezione ke si aspetta il codice (cioè file inesistente) ma genera l'altra errore 500...:(
Ultima modifica effettuata da noitide 09/12/09 16:23
aaa