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);
}
}
}
}