Quello di sotto è una prova per spedire tutti i file di un certo tipo in una data directory.
Però
a volte non mi funziona. A dire la verità, però, ho difficoltà anche ad aprire la mia directory sul server Tiscali, mediante ftp.
Perciò, vedi te...
codice:
Option Strict On
Imports System.IO
Module Module1
Sub Main()
'tutti i file di c:\tmp
'con estensione jpg
Dim di As New DirectoryInfo("c:\tmp")
Dim result = From fi In di.GetFiles("*.jpg") _
Select New With {.FullName = fi.FullName}
For Each o In result
InviaFile(o.FullName)
Next
Console.WriteLine("Upload completo")
End Sub
Private Sub InviaFile(ByVal fileName As String)
Dim uploadUrl As String = "ftp://utente:password@web.tiscali.it/tmp/" & Path.GetFileName(fileName)
Dim requestStream As Stream = Nothing
Dim fileStream As FileStream = Nothing
Dim uploadResponse As Net.FtpWebResponse = Nothing
Try
Dim uploadRequest As Net.FtpWebRequest = DirectCast(Net.WebRequest.Create(uploadUrl), Net.FtpWebRequest)
uploadRequest.Method = Net.WebRequestMethods.Ftp.UploadFile
uploadRequest.Proxy = Nothing
uploadRequest.Credentials = New Net.NetworkCredential("utente", "password")
requestStream = uploadRequest.GetRequestStream()
fileStream = File.Open(fileName, FileMode.Open)
Dim buffer(1024) As Byte
Dim bytesRead As Integer
Do
bytesRead = fileStream.Read(buffer, 0, buffer.Length)
If bytesRead = 0 Then Exit Do
requestStream.Write(buffer, 0, bytesRead)
Loop
requestStream.Close()
uploadResponse = DirectCast(uploadRequest.GetResponse(), Net.FtpWebResponse)
Console.WriteLine(String.Format("Upload di {0}", fileName))
Catch ex As Exception
Console.WriteLine(ex.Message())
Finally
If uploadResponse IsNot Nothing Then uploadResponse.Close()
If fileStream IsNot Nothing Then fileStream.Close()
If requestStream IsNot Nothing Then requestStream.Close()
End Try
End Sub
End Module