Oppure

Loading
16/07/09 13:11
Master_VB
ciao a tutti io ho un problema in pratica quando vado a scaricare un file con un client dichiarato così:
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)
img40.imageshack.us/img40/1745/…

il codice che uso per scariare il file ftp è questo:
Download.Credentials = New System.Net.NetworkCredential(My.Settings.username_ftp, My.Settings.password_ftp)
        Try
            Download.DownloadFileAsync(New Uri(URL), (filedir))
        Catch ex As Exception
            MsgBox("Errore di download:" + ErrorToString(), MsgBoxStyle.Critical)
        End Try
        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
aaa
16/07/09 13:38
riseofapocalypse
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:
        Dim request As New WebClient
        request.Credentials = New NetworkCredential("anonymous", "janeDoe@contoso.com")
        Try
            Dim newFileData() As Byte = request.DownloadData(serverUrl)
            Dim fileString As String = System.Text.Encoding.UTF8.GetString(newFileData)
            Console.WriteLine(fileString)
        Catch ex As WebException
            Console.WriteLine(ex.Message)
        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:
msdn.microsoft.com/en-us/library/…
msdn.microsoft.com/en-us/library/…
Ultima modifica effettuata da riseofapocalypse 16/07/09 13:41
aaa
17/07/09 8:59
Master_VB
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
aaa
17/07/09 9:20
Master_VB
ma dove salva il file scaricato?
aaa
17/07/09 9:22
Master_VB
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
aaa
17/07/09 9:39
riseofapocalypse
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ì:
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 17/07/09 9:40
aaa
17/07/09 9:53
Master_VB
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:
Download.Credentials = New NetworkCredential(My.Settings.username_ftp, My.Settings.password_ftp)
        Try
            Dim newFileData() As Byte = Download.DownloadData(URL)
            Dim fileString As String = System.Text.Encoding.UTF8.GetString(newFileData)
            Console.WriteLine(fileString)
            IO.File.WriteAllBytes(newFileData, filedir)
        Catch ex As WebException
            Console.WriteLine(ex.Message)
        End Try

:(
aaa
17/07/09 10:26
riseofapocalypse
Ops piccolo errorino, ho invertito gli argomenti di RealAllBytes :rotfl:
aaa