Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
In my last blog post I reviewed the SmartFTP Client, where I briefly mentioned that the SmartFTP Client has built-in extensibility support, and I promised to include a script that I've been testing. I have made it abundantly obvious in many of my earlier blog posts that I love writing scripts or extending the functionality of existing products whenever I can, so having built-in extensibility for an FTP client definitely caught my interest.
To begin with, you can download the SDK for the SmartFTP Client from the following URL:
The SDK will give you a couple of CHM files that contain the documentation for the SmartFTP Client extensibility features and a handful of samples to get you started. After I downloaded the SDK I spent some time looking at the documentation and a few of the existing samples, and I was able to create a simple FTP client pretty easily based on what I had seen.
So without further discussion, here is the annotated sample that I have been testing:
Option Explicit ' Bypass any errors. On Error Resume Next ' Declare the object variables. Dim objSmartFTP Dim objFTPConnection ' Define some constants. ' Note: These are from the CHM file in the SDK. Const ftpProtocolNormal = 0 Const ftpErrorSuccess = 0 ' Try to retrieve an exsting object for the SmartFTP client. Set objSmartFTP = GetObject("SmartFTP.Application") ' Test if we were able to get an exsting object. If TypeName(objSmartFTP) <> "Application" Then ' Instantiate a new instance if no client is present. Set objSmartFTP = WScript.CreateObject("SmartFTP.Application") End If ' Hide the SmartFTP client. objSmartFTP.Visible = False ' Create a connection object. Set objFTPConnection = objSmartFTP.CreateObject("sfFTPLib.FTPConnectionSTA") ' Specify the connection properties. objFTPConnection.Host = "ftp.example.com" objFTPConnection.SendHOST = True objFTPConnection.Username = "foo" objFTPConnection.Password = "bar" objFTPConnection.Port = 21 objFTPConnection.Protocol = ftpProtocolNormal objFTPConnection.Passive = True objFTPConnection.MLST = True ' Connect to the FTP site and test for success. If objFTPConnection.Connect = ftpErrorSuccess Then ' Display the FTP server's welcome message. WScript.Echo objFTPConnection.ServerState.WelcomeMessage ' Download the IIS start page to a local TEMP folder. If objFTPConnection.DownloadFile("/iisstart.htm",_ "C:\temp\iisstart.htm", 0, 0) = ftpErrorSuccess Then WScript.Echo "Download successful." Else WScript.Echo "Download failed. Error = " & objFTPConnection.LastError End If Else WScript.Echo "Connection failed. Error = " & objFTPConnection.LastError End If ' Destroy the connection object. Set objFTPConnection = Nothing ' Close the SmartFTP client. objSmartFTP.Exit ' Destroy the SmartFTP object. Set objSmartFTP = Nothing
I should mention again that I am using the SmartFTP Client Ultimate Edition version 4.0.1105.0, just in case something is different in an earlier or later build. ;-]