Overview
Ultimate SFTP is a 100%-managed .NET class library that adds powerful
and comprehensive SSH Secure File Transfer (SFTP) capabilities to your .NET Console, Service, WinForms, Web Service, and WebForms applications.
If you need SFTP component for .NET Compact Framework, visit
SFTP Component for .NET Compact Framework.

| Standard License Without Source Code | Premium License With Source Code |
1 Developer 1 Year Subscription | $299 | $599 |
1 Developer Life-time Subscription | $599 | $1,199 |
Company 1 Year Subscription | $1,299 | $2,599 |
Company Life-time Subscription | $2,599 | $5,199 |
Subscription:
1 Year: Provides updates, new products and access to priority support for one year
Life-time: Provides updates, new products and access to priority support for life-time
from $299
The Ultimate SFTP offers a comprehensive interface
for SFTP, enabling you to quickly and easily incorporate Secure File Copy (SCP), SSH Secure File Transfer (SFTP), and advanced remote file management in your applications.
In addition to downloading and uploading by file name, URL, and
wild card masks, the SFTP library also supports remote file management functionality
such as directory listings and the ability to rename, delete
and move files on the server. The component also offers the flexibility,
ease of use and rapid development features of a component without the complexities
of working with the native socket class or in-depth knowledge of how the File Transfer
Protocols are implemented. In most cases, only a few lines of code are required
to implement a file transfer in your application. The set of properties and methods
is sufficiently rich to enable you to take advantage of features such as the resumption
of interrupted transfers, passive mode operation in the presence of firewalls,
automatic file verification and support for custom server commands.
In addition to supporting remote file tasks, the Ultimate SFTP Component also supports multi-thread file transfers as well as data compression on-the-fly with built-in Zlib classes to speed up the transfers.
To save your effort writing a number of classes for different file systems such as FTP, SFTP, ZIP, Local Disk, and Virtual Disk,
we introduce the Unified File System that makes the management of files on these systems seamless. The Unified File System allows you to use the same code to transfer files and directories directly between two different file systems. As a benefit, you may need to write only one class that works with all file systems. Such complicated work is done by the Ultimate File System and there is no need to learn more about other File Transfer Protocols. For more information, please
visit this topic.
To help you become familiar with the features of the component, a number of well documented samples and topics were added to the comprehensive integrated online documentation which can be found at this web page.
If you need FTP, FTP over TLS/SSL (FTPS) Component, please visit FTP, FTP over TLS/SSL (FTPS) Library page.
The component is also included in the following suites which are bundles that include many additional .NET components:
Key Features
- Upload, download, append, rename and delete file
- Upload, download, or Remove entire directory (including subdirectories and files) quickly with a single line of code
- Upload and download multiple files using wildcards mask with a single line of code
- Support for files over 4GB
- Parse listings automatically
- Supports both ASCII and binary transfers
- Supports restarting interrupted file transfers
- Abort operations smoothly
- Synchronizes folders easily
- Compress and decompress data on-the-fly
- SFTP protocol version 3 support
- SFTP protocol version 4 support
- All SSH and SFTP servers support
- Tested with many SFTP servers such as Bitvise, CoreFTP, GlobalSCAPE, OpenSSH, wodSFTP...
- Supports Multi-threading. You can use as many threads as you want to speed up file transfers
- Unified Remote File System allows you to directly and easily transfer and synchronize files and directories between two different file systems such as FTP, SCP, ZIP, Disk, Memory, etc.
- File transfer monitoring support with progress event
- Fully supports both event-driven (asynchronous) and blocking (synchronous) application designs
- Send and receive files to or from disk or memory streams. This allows you to compress and decompress ZIP files on-the-fly
- Built-in Zlib streams
- Filter files on name with wildcards mask or regular expression, size, or last modified date
- Resume previously interrupted file
- Allows you to check the exact transferring state like uploading, downloading, etc.
- Tested with many SFTP servers such as Bitvise, CoreFTP, GlobalSCAPE, OpenSSH, wodSFTP...
- FIPS 140-2 compliant. This mode is automatically enabled on systems where only compliant algorithms are allowed
- Compliant with RFC 4250-4254, 4256 and 4419
- Progress event argument contains full information about the file transfer such as:
File size, transfer percentage, transfer speed, time left, etc.
- Supports ASP.NET Medium Trust environment configuration
- more...
Sample Usage - Transferring files and directories
// Create a new instance of the Sftp class.
Sftp client = new Sftp();
// Connect to the SFTP server.
client.Connect("myserver");
// Authenticate.
client.Authenticate("user", "pass");
// Upload local file 'c:\test.dat' to the default remote directory.
client.UploadFile("c:\\test.dat", "test.dat");
string defaultDir = client.GetCurrentDirectory();
Console.WriteLine(string.Format("File has been uploaded to '{0}'.", defaultDir));
// Upload .cs and .vb files to the current directory.
client.UploadFiles("c:\\temp\\*.cs;*.vb", "");
// Download .mp3, .wav and .jpg files from '/mydir' directory to 'c:\temp'.
client.DownloadFiles("/mydir/*.mp3,*.wav,*.jpg", "c:\\temp");
// Upload an entire directory.
client.UploadDirectory("c:\\temp", "/");
// Download an entire directory.
client.DownloadDirectory("myremotedir", "c:\\temp");
// Disconnect.
client.Disconnect();
' Create a new instance of the Sftp class.
Dim client As New Sftp()
' Connect to the SFTP server.
client.Connect("myserver")
' Authenticate.
client.Authenticate("user", "pass")
' Upload local file 'c:\test.dat' to the default remote directory.
client.UploadFile("c:\test.dat", "test.dat")
Dim defaultDir As String = client.GetCurrentDirectory()
Console.WriteLine(String.Format("File has been uploaded to '{0}'.", defaultDir))
' Upload .cs and .vb files to the current directory.
client.UploadFiles("c:\temp\*.cs;*.vb", "")
' Download .mp3, .wav and .jpg files from '/mydir' directory to 'c:\temp'.
client.DownloadFiles("/mydir/*.mp3,*.wav,*.jpg", "c:\temp")
' Upload an entire directory.
client.UploadDirectory("c:\temp", "/")
' Download an entire directory.
client.DownloadDirectory("myremotedir", "c:\temp")
' Disconnect.
client.Disconnect()
Supports HTTP Connect, SOCKS4, SOCKS4A & SOCKS5 Proxy Servers
Ultimate SFTP fully supports HTTP CONNECT, SOCKS4,
SOCKS4A, and SOCKS5 proxy servers. By simply setting a few properties, you are able to
download and upload files and directories from/to FTP servers through the desired proxy
server.
Support for IPv6, the next generation Internet protocol
IPv6 (Internet Protocol version 6), the next-generation protocol designed by the
IETF (Internet Engineering Task Force), will gradually replace the current version
of the Internet Protocol, IPv4.
With Ultimate SFTP Component, users have an integrated service assurance solution
that will provide them with FTP, and Proxy capabilities in mixed IPv4 and IPv6
environments. This helps organizations with the adoption of and the transition to
IPv6 by making the management of such networks seamless.
.NET Technology
By using 100% managed code written in C#, the Ultimate SFTP component takes
advantage of the numerous built-in features of the .NET Framework to enhance performance,
moreover, the component is CLS compliant, and it does not use any unsafe blocks
for minimal permission requirements. In addition, the component is highly compatible with Microsoft ClickOnce.
Ultimate SFTP Component for .NET supports the following platforms:
- Windows Forms
- Web Forms
- Web Services
In addition, it is also possible to use the component in
PowerShell - Microsoft’s new command console and scripting language.
Ultimate SFTP is fully compatible with Visual Studio 2005 (.NET 2.0), Visual Studio
2008 (.NET 3.5), and Visual Studio 2010 (.NET 4.0). As a benefit,
you are always up-to-date with Microsoft's Technologies when using our products.
Supports event-driven (Asynchronous) and blocking (Synchronous) Design
Most applications written with the component will be synchronous. Synchronous
method gives you the ease-of-use, but it can only returns the control back to the
caller after it has finished, meaning that it blocks the execution of the caller
for a period of time. Using synchronous method is recommended when you only need
to execute one SFTP operation at a time.
You might decide that your design requires an asynchronous operation when it is
needed to manage remote files simultaneously. Asynchronous methods provide a great
deal of power. Asynchronous method is executed on a thread separate from the calling
thread. Such operation is useful when an SFTP operation is time consuming and other
codes need to execute without waiting for the initial operation to complete. In
addition, the user interface will be most responsive when asynchronous methods are
used.
Flexibility
The component can be used with a wide variety of programming languages and different types of development
environments. As it was written in 100% managed Visual C#, it is fully supported by languages
such as Visual Basic, Visual C#, J#, Managed C++, Borland
C# Builder, and Delphi.
Fully Documented
We know that no product can be complete without comprehensive documentation. This is why the product includes
a Developer's Guide and a complete Technical Reference
which documents every property, method and event supported by the component. A context-sensitive
online help is included with the product which can be accessed directly from within the development environment.
Lots of complete SFTP client samples in C#, VB.NET, and ASP.NET
In addition to the fully documented Developer's Guide and a complete Technical Reference,
the component also includes a number of samples with full source code
which help you become familiar with the features of the component and provide
code which you can re-use in your own applications.
The setup package contains three
complete SFTP client applications: FTP Console Client, FTP WinForms Client,
and FTP AJAX WebForms Client.
Royalty-free and Unlimited Server Deployment
All ATP products include royalty-free distributation, for unlimited site deployment.
It means applications built using the Ultimate SFTP component can be redistributed to as many end-users as needed
without additional royalties or runtime licensing fees.