Imports System.Threading Imports System Imports Jscape.Ftp Public Class FtpExample Public WithEvents myFtp As Jscape.Ftp.Ftp Private connect As Boolean = False Public Sub New() myFtp = New Jscape.Ftp.Ftp("hostname", "username", "password") myFtp.ConnectionType = Jscape.Ftp.Ftp.AUTH_TLS 'or use Jscape.Ftp.Ftp.IMPLICIT_SSL myFtp.Connect() Dim e As IEnumerator = myFtp.GetDirListing() While e.MoveNext() Dim file As FtpFile = e.Current System.Console.WriteLine(file.Filename) If file.IsDirectory Then System.Console.WriteLine("Dir Owner/Group: " + file.Owner + "/" + file.Group) ElseIf (file.Link) Then System.Console.WriteLine(vbTab + "Link Target: " + file.LinkTarget) Else System.Console.WriteLine(vbTab + "File Size: " + file.Size) System.Console.WriteLine(vbTab + "Permissions: " + file.Permission) System.Console.WriteLine(vbTab + "Modify Date: " + file.Date) System.Console.WriteLine(vbTab + "Modify Time: " + file.Time) End If System.Console.WriteLine() End While ' set remote dir myFtp.RemoteDir = "logs" ' download log files myFtp.MDownload("*.log") 'set remote dir myFtp.RemoteDir = "yoursite.com/images" ' upload all .jpg files myFtp.MUpload("*.jpg") myFtp.Disconnect() End Sub Property Connected() As Boolean Get Return connect End Get Set(ByVal Value As Boolean) connect = Value End Set End Property Public Shared Sub Main() Dim myExample As FtpExample myExample = New FtpExample End Sub Public Sub OnConnected(ByVal sender As Object, ByVal e As FtpConnectEventArgs) Handles myFtp.FtpConnectedEvent Me.Connected = True System.Console.WriteLine("Connected: " & e.HostName) End Sub Public Sub OnDisconnected(ByVal sender As Object, ByVal e As FtpConnectEventArgs) Handles myFtp.FtpDisconnectedEvent Me.Connected = False System.Console.WriteLine("Disconnected: " + e.HostName) End Sub End Class