ftp/Class1.cs

using System;
using sfFTPLib;

namespace DotNetInteropDemo
{
    /// <summary>
    /// Demo class for sfFTPLib
    /// </summary>
    class Class1
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            // Load License Key
            sfFTPLib.Global global = new sfFTPLib.Global();
            if(global.LoadLicenseKeyData("..."))
                System.Console.WriteLine("License key verified.");
            else
                System.Console.WriteLine("Failed to verify license key.");

            // Create our COM object through the Interop
            FTPConnectionMTA ftp = new FTPConnectionMTA();

            // host settings
            ftp.Host = "ftp.smartftp.com";
            ftp.Port = 21;
            ftp.Username = "anonymous";
            ftp.Password = "test@test.com";
            ftp.Passive = true;

            // proxy settings
            //ftp.Proxy.Type = sfFTPLib.enumProxyType.ftpProxyTypeNone;
            //ftp.FTPProxy.Type = sfFTPLib.enumFTPProxyType.ftpFTPProxyTypeNone;

            // set CLNT name
            ftp.Client = "sfFTPLib C# Interop Demo";
            // log everything
            ftp.LogFile = "DotNetInteropDemo.log";
           
            // connect to host
            sfFTPLib.enumError err = ftp.Connect();
            if(err == sfFTPLib.enumError.ftpErrorSuccess)
            {
                if(ftp.ChangeDirectory("/SmartFTP") == sfFTPLib.enumError.ftpErrorSuccess)
                {
                    // read listing
                    if(ftp.ReadDirectory() == sfFTPLib.enumError.ftpErrorSuccess)
                    {
                        FTPItems items = _ftp.Items;
                        // Use the foreach statement to iterate through
                        // elements in the collection
                        foreach (FTPItem objItem in items)
                        {
                            System.Console.WriteLine("Type={0}; Name={1}; Size={2}", objItem.Type, objItem.Name, objItem.Size);
                        }
                    }

                    // download file
                    // Note: No resume in this sample
                    uint nStartPosLo = 0;
                    uint nStartPosHi = 0;
                    if(ftp.DownloadFile("History.txt", "History.txt", nStartPosLo, nStartPosHi) == sfFTPLib.enumError.ftpErrorSuccess)
                    {
                        System.Console.WriteLine("DownloadFile() successful.");
                        System.Console.WriteLine("LastTransferBytes = {0} B", ftp.LastTransferBytes);
                        System.Console.WriteLine("LastTransferTime = {0} s", ftp.LastTransferTime);
                        System.Console.WriteLine("LastTransferSpeed = {0} B/s", ftp.LastTransferSpeed);
                    }
                    else
                    {
                        System.Console.WriteLine("DownloadFile() failed. LastError = {0}", ftp.LastError);
                        System.Console.WriteLine("LastReplyCode = {0}", ftp.LastReplyCode);
                        System.Console.WriteLine("LastReply = {0}", ftp.LastReply);
                    }
                }

                ftp.Disconnect();
            }
            else
            {
                if(err == sfFTPLib.enumError.ftpErrorLicense)
                        System.Console.WriteLine("Please acquire a license from http://www.smartftp.com");
                else
                        System.Console.WriteLine("Connect() failed. LastError = {0}", ftp.LastError);
            }
        }
    }
}
 
© SmartSoft Ltd.