Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Errore del server remoto: (500) Errore di sintassi.
Forum - C# / VB.NET - [VB.NET] Errore del server remoto: (500) Errore di sintassi.

Avatar
noitide (Normal User)
Pro


Messaggi: 107
Iscritto: 24/06/2009

Segnala al moderatore
Postato alle 22:14
Martedì, 08/12/2009
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
Codice sorgente - presumibilmente VB.NET

  1. Dim asd As FtpWebRequest = FtpWebRequest.Create("ftp://......../TeamSpeak/")
  2.     Dim sps As New WebClient With {.Credentials = New NetworkCredential("user", "password")}
  3.         asd.Credentials = New NetworkCredential("user", "password")
  4.         asd.Method = WebRequestMethods.Ftp.ListDirectory
  5.         Dim leggi As New StreamReader(asd.GetResponse.GetResponseStream)
  6.         Dim tot() As String = leggi.ReadToEnd.Split(vbCrLf)
  7.         For Each a As String In tot
  8.             Try
  9.                 sps.DownloadString("ftp://....../TeamSpeak/" + a + "/Stevenking.txt")
  10.                 ComboBox1.Items.Add(a)
  11.             Catch ex As Exception
  12.                 TextBox1.Text = (ex.Message)
  13.             End Try
  14.         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
Codice sorgente - presumibilmente Plain Text

  1. 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 il 09/12/2009 alle 15:43
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:55
Mercoledì, 09/12/2009
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:
http://msdn.microsoft.com/it-it/library/system.net.ftpwebr ...


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
noitide (Normal User)
Pro


Messaggi: 107
Iscritto: 24/06/2009

Segnala al moderatore
Postato alle 17:07
Mercoledì, 09/12/2009
Testo quotato

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:
http://msdn.microsoft.com/it-it/library/system.net.ftpwebr ...



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.

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:10
Mercoledì, 09/12/2009
http://stackoverflow.com/questions/347897/how-to-check-if- ...
Comunque avevo scritto WebClient e non WebRequest.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
noitide (Normal User)
Pro


Messaggi: 107
Iscritto: 24/06/2009

Segnala al moderatore
Postato alle 17:22
Mercoledì, 09/12/2009
Testo quotato

Postato originariamente da Il Totem:

http://stackoverflow.com/questions/347897/how-to-check-if- ...
Comunque avevo scritto WebClient e non WebRequest.


allora.. ho modificato così il ciclo For il resto l'ho lasciato invariato
Codice sorgente - presumibilmente VB.NET

  1. For Each a As String In tot
  2.             Dim sps As FtpWebRequest = WebRequest.Create("ftp://spsracing.net/httpdocs/spsync/TeamSpeak/" + a + "/Stevenking.txt")
  3.             sps.Credentials = New NetworkCredential("user", "password")
  4.             sps.Method = WebRequestMethods.Ftp.GetFileSize
  5.             Try
  6.                 Dim response As FtpWebResponse = sps.GetResponse
  7.                 ComboBox1.Items.Add(a)
  8.             Catch ex As WebException
  9.                 Dim response As FtpWebResponse = ex.Response
  10.                 If response.StatusCode = FtpStatusCode.ActionNotTakenFileUnavailable Then
  11.                     MsgBox("file inesistente")
  12.                 End If
  13.                 MsgBox(ex.Message)
  14.             End Try
  15.         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 il 09/12/2009 alle 17:23
PM Quote