Salve ragazzi,
sto facendo un programmino che dovrebbe scaricare tramite ftp un'intera cartella.
Io ho fatto cosi:
codice:Private Sub Download_File(Destination As String, NomeCartella As String, fileName As String) Dim reqFTP As FtpWebRequest = Nothing Dim ftpStream As Stream = Nothing Dim outputStream As FileStream = Nothing Try If Directory.Exists(Destination & NomeCartella) = False Then Directory.CreateDirectory(Destination & NomeCartella) End If outputStream = New FileStream(Destination & fileName, FileMode.Create) reqFTP = DirectCast(FtpWebRequest.Create(New Uri("ftp://" + gTpSettaggi.IpServer & "/" & fileName)), FtpWebRequest) reqFTP.Method = WebRequestMethods.Ftp.DownloadFile reqFTP.UseBinary = True reqFTP.Credentials = New NetworkCredential(gTpSettaggi.Utente, gTpSettaggi.Pwd) Dim response As FtpWebResponse = DirectCast(reqFTP.GetResponse(), FtpWebResponse) ftpStream = response.GetResponseStream() Dim cl As Long = response.ContentLength Dim bufferSize As Integer = 2048 Dim readCount As Integer Dim buffer As Byte() = New Byte(bufferSize - 1) {} readCount = ftpStream.Read(buffer, 0, bufferSize) While readCount > 0 outputStream.Write(buffer, 0, readCount) readCount = ftpStream.Read(buffer, 0, bufferSize) End While ftpStream.Close() outputStream.Close() response.Close() Catch ex As Exception If outputStream IsNot Nothing Then outputStream.Close() End If If ftpStream IsNot Nothing Then ftpStream.Close() ftpStream.Dispose() End If CreaLogError("Impossibile scaricare il file: " & fileName & ". " & ex.Message) End Try End Sub
In pratica richiamo la precedente Sub cosi:
Dove appList è un arraylist contenente i nomi di tutti i file da scaricare.codice:For i As Integer = 0 To appList.Count - 1 Download_File(Destinazione, PathCartella, gTpSettaggi.PathCartella & "/" & appList(i)) Next i
La procedura funziona correttamente, ma ho notato che ogni tanto, va in errore il download di qualche file. Ora la mia domanda era: Esiste un'alternativa alla mia procedura, che mi consenta di scaricare il contenuto di un'intera cartella?.
Se avete notato, il codice da me scritto, apre e chiude la connessione per ogni file da scaricare. E' questo il problema?

Rispondi quotando