Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - problema downlaod da ftp aiuto
Forum - C# / VB.NET - problema downlaod da ftp aiuto

Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo
Avatar
Master_VB (Normal User)
Pro


Messaggi: 148
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 15:11
Giovedì, 16/07/2009
ciao a tutti io ho un problema in pratica quando vado a scaricare un file con un client dichiarato così:
Codice sorgente - presumibilmente VB.NET

  1. dim withevents dwn as new webclient


da http è tutto a posto va alla perfezione, mentre quando scarico da ftp mi dà questi errori:
(piccolo screen)
http://img40.imageshack.us/img40/1745/immaginezjp.jpg

il codice che uso per scariare il file ftp è questo:
Codice sorgente - presumibilmente VB.NET

  1. Download.Credentials = New System.Net.NetworkCredential(My.Settings.username_ftp, My.Settings.password_ftp)
  2.         Try
  3.             Download.DownloadFileAsync(New Uri(URL), (filedir))
  4.         Catch ex As Exception
  5.             MsgBox("Errore di download:" + ErrorToString(), MsgBoxStyle.Critical)
  6.         End Try
  7.         Timer4.Stop()


sia con che senza credenziali non funziona. (c'è il timer perchè da un altro piccolo form faccio inserire user e password che poi attiva questo timer, che appunto viene stoppato per non far creare + istanze di download). è il bello è che quando scarica non genera errori visibili il file lo scarica ed è funzinante ma il programma si blocca e gli avanzamenti (perchè uso l'evento progresschanged per gestire gli avanzamenti del download) non funzionano la progressbar non si muove le eprcentuali enanche è in più visto che io mostro anche i kbyte mostra solo quelli in avanzamento e quelli totali da raggiungere sono a -1.
aiutatemi vi prego non sò più dove sbattere la testa!:d:d:d:d:d:d

PM Quote
Avatar
riseofapocalypse (Ex-Member)
Pro


Messaggi: 150
Iscritto: 08/07/2009

Segnala al moderatore
Postato alle 15:38
Giovedì, 16/07/2009
Su MSDN ho trovato un esempio sincrono in C# di come usare il WebClient per scaricare un file da FTP! Ho tratto solo la parte che ti interessa e l'ho convertito in VB.Net:
Codice sorgente - presumibilmente VB.NET

  1. Dim request As New WebClient
  2.         request.Credentials = New NetworkCredential("anonymous", "janeDoe@contoso.com")
  3.         Try
  4.             Dim newFileData() As Byte = request.DownloadData(serverUrl)
  5.             Dim fileString As String = System.Text.Encoding.UTF8.GetString(newFileData)
  6.             Console.WriteLine(fileString)
  7.         Catch ex As WebException
  8.             Console.WriteLine(ex.Message)
  9.         End Try


A me funziona! :k:

Se non ti funziona nemmeno così, prova ad usare FtpWebRequest.Create(url) :)

P.S. Se ti serve la documentazione la trovi qua:
http://msdn.microsoft.com/en-us/library/system.net.webclie ...
http://msdn.microsoft.com/en-us/library/system.net.ftpwebr ...

Ultima modifica effettuata da riseofapocalypse il 16/07/2009 alle 15:41
PM Quote
Avatar
Master_VB (Normal User)
Pro


Messaggi: 148
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 10:59
Venerdì, 17/07/2009
in vb.net non funziona perchè la microsoft non gli ha fatto "bene" il supporto all'ftp?...comunque devo fare imports csharp per usare il codice vero? ora provo

PM Quote
Avatar
Master_VB (Normal User)
Pro


Messaggi: 148
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 11:20
Venerdì, 17/07/2009
ma dove salva il file scaricato?

PM Quote
Avatar
Master_VB (Normal User)
Pro


Messaggi: 148
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 11:22
Venerdì, 17/07/2009
comunque io vorrei usare il mio webclient così posso gestire anche gli eventi così è uguale per tutti comunque non so dove fargli salvare il file sul computer e si blocca lo stesso senza nessun errore però da la scritta non risponde

PM Quote
Avatar
riseofapocalypse (Ex-Member)
Pro


Messaggi: 150
Iscritto: 08/07/2009

Segnala al moderatore
Postato alle 11:39
Venerdì, 17/07/2009
Complimenti! Hai battuto il Record di post multipli in meno di mezz'ora! :rotfl:
Scherzi a parte, se vuoi usare gli eventi del WebClient dichiaralo WithEvents! Ovviamente non devi dichiararlo all'interno del Sub in quel caso... :) comunque non salva il file, poichè ne scarica i Bytes! Poi sta a te salvarlo ad esempio così:
Codice sorgente - presumibilmente Plain Text

  1. IO.File.WriteAllBytes(newFileData, filename)



P.S. E' ovvio che l'applicazione si blocchi visto che è un esempio sincrono :k:

Ultima modifica effettuata da riseofapocalypse il 17/07/2009 alle 11:40
PM Quote
Avatar
Master_VB (Normal User)
Pro


Messaggi: 148
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 11:53
Venerdì, 17/07/2009
ah ecco...comuqnue mi dà questi due errori:
Errore    1    Impossibile convertire il valore di tipo 'Matrice a 1 dimensioni di Byte.'
Errore    2    Impossibile convertire il valore di tipo 'String' in 'Matrice a 1

usando questo codice:
Codice sorgente - presumibilmente VB.NET

  1. Download.Credentials = New NetworkCredential(My.Settings.username_ftp, My.Settings.password_ftp)
  2.         Try
  3.             Dim newFileData() As Byte = Download.DownloadData(URL)
  4.             Dim fileString As String = System.Text.Encoding.UTF8.GetString(newFileData)
  5.             Console.WriteLine(fileString)
  6.             IO.File.WriteAllBytes(newFileData, filedir)
  7.         Catch ex As WebException
  8.             Console.WriteLine(ex.Message)
  9.         End Try


:(

PM Quote
Avatar
riseofapocalypse (Ex-Member)
Pro


Messaggi: 150
Iscritto: 08/07/2009

Segnala al moderatore
Postato alle 12:26
Venerdì, 17/07/2009
Ops piccolo errorino, ho invertito gli argomenti di RealAllBytes :rotfl:

PM Quote
Avatar
Master_VB (Normal User)
Pro


Messaggi: 148
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 12:29
Venerdì, 17/07/2009
ok ho corretto:k:
ora testo il codice...
ok funziona ma vorrei mettere anche una cosa che se non trova il file nel server lo dice perchè ho provato e mi va in errore se non trova il file nel server. E poi per esepio gli ho dato un link del mio file nel mo server e in http lo scarica e in ftp mi dice che non trova il file (quando lo mando in debug). Però non me lo segnala si blocca il programma comunque c'è ancora un problema...non mi segnala l'avanzamento del download nè con la barra di progresso nè con il numero in percentuale

Ultima modifica effettuata da Master_VB il 17/07/2009 alle 12:42
PM Quote
Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo