PowerTCP FTP for .NET
from $299.00Available Platforms
Next Generation FTP and FTPS .NET Component
PowerTCP FTP for .NET is designed to be the most advanced FTP and FTPS class library available while retaining an easy to use interface. Its design promotes a Model-View-Controller (MVC) application design, so users may localize your protocol functions and settings in a reusable model class. Requires fewer resources, provides more flexibility, and elicits code that is easier to re-use and maintain.
- Utilizes .NET features including generics, IPv6, dual-stack sockets and X509 certificates
- SSL and TLS fully integrated
- Supports concurrent sessions on multiple worker threads
- Includes code examples and sample projects
- Lightweight Dll has small footprint that streamlines your app
Ftp ftp1 = new Ftp();
//Connect to the FTP Server and authenticate
ftp1.Connect(myServer);
ftp1.Authenticate(myUsername, myPassword);
//Retrieve a file.
ftp1.Get("testfile.txt", Path.Combine(myLocalDirectory, "testfile.txt"), Synchronize.Off);
//Close the connection.
ftp1.Close();
Feature Overview
Includes the Features You Expect
- Upload and download files and directories
- Create directories
- Delete files and directories, including subfolders
- ASCII and binary transfers
- Passive and active transfers
- Set site-specific options and parameters
- Runs in .NET 2.0+ Frameworks
- Compliant with RFC 959 plus many extension standards
More Than Just Your Standard FTP
- Stream interface support the creation or inspection of data in memory without file access
- Serializable classes persist application settings between sessions
- Blocking and non-blocking (asynchronous) operation
- Progress event reports transfer rate and statistics
- Supports multiple file transfer using wildcards (MGET and MPUT)
- Synchronize remote and local directories
- Resume interrupted transfers
Additional Features
- Methods are simple blocking functions with little overhead
- Streamlined for integration into non-UI projects such as web sites and services
- Supports Windows Presentation Foundation (WPF) applications
- Start and Marshal methods provide asynchronous use for applications with a UI
- Perform simultaneous file transfers in multi-threaded applications
- Progress event is used to monitor and display transfer rate and advancement
- Log event is used to for logging and debugging
- Compatible with Client Profile projects
Plus Much More
- Parses listings into easy-to-use objects
- Throttle property can be used to limit bandwidth used
- Stream interface for direct access to the data connection
- Supports MODE Z file transfer compression
- IPv6 support, including "dual stack sockets" to help migrate to IPv6
- Send custom commands
- Abort transfers without losing the control connection
- Customize List parsing to recognize non-English months
Why Buy PowerTCP FTP for .NET?
PowerTCP FTP for .NET features compared with .NET Framework 2.0/3.5/4.0 (Visual Studio 2005/2008/2010)
Feature | .NET Framework | PowerTCP FTP for .NET |
---|---|---|
"AUTH TLS" explicit encryption support | ||
Comprehensive explicit and implicit encryption | - | |
Support for single file and streaming data transfers | ||
Recursive wild-card directory file transfers and deletions | - | |
MODE Z file transfer compression | - | |
File listing parsing | - | |
Log event for session logging and debugging | - | |
Extensive firewall and proxy support | - | |
Transfer rate throttle | - |
Security and Proxy Support
- SSL2, SSL3, TLS version 1.0, 1.1, 1.2 support for stream-level security
- Supports certificate-based authentication for both client and server
- Network Address Translation (NAT) router support for secure transfers
- Explicit and implicit FTPS support
- Firewall and proxy support for SOCKS 4/5, HTTP CONNECT, OPEN, USER and SITE FTP
- Secure the control (command) connection, the data connection, both, or neither
- Switch between secure and non-secure modes
- X509 certificate management
- Certificate callbacks allow for user-driven certificate validation
Samples and Documentation
- Integrates with Visual Studio
- Sample projects for C# and VB.NET (Windows Forms, Web Forms, WPF, Web Service, WCF Service and PowerShell)
Looking for an FTP Client Application?
Get FTP Free Now!
Looking for an SFTP (SSH FTP) Product?
Included With FTP for .NET
- Ftp Component plus many supporting classes
- Sample projects written in C#, VB.NET, VC++/CLI
- Comprehensive MS Help 2.0 and MS Help Viewer integrated documentation
- Free Introductory Support.
The PowerTCP for .NET Ftp component is a powerful and flexible component-based implementation of the File Transfer Protocol (FTP) with security extensions. High-level properties and methods provide quick code creation and ease-of use, while access to lower-level properties and methods provide power and control.
Supported Environments
PowerTCP FTP for .NET supports .NET Framework version 4.5+ and .NET Standard 2.0 (.NET Core, .NET 5, .NET 6, .NET 7, etc.). PowerTCP for. NET components can be used with any .NET compliant language, please see the list below.
Supported languages:
- C#
- VB.NET
- Managed C++
Tested in the following application environments:
- Standard Windows desktop applications
- Console applications
- ASP.NET web applications and Web Sites
- Windows service applications
- Web service applications
- Windows Communication Foundation (WCF) service applications
- Windows Presentation Foundation (WPF) applications
Tested in the following development environments:
- Visual Studio .NET (2010, 2012, 2013, 2015, 2017, 2019, 2022)
NET Standard 2.0 supported platforms: https://docs.microsoft.com/en-us/dotnet/standard/net-standard
PowerTCP for .NET components do not currently support execution within Silverlight. If you are interested in using Dart products within your Silverlight solution, contact support@dart.com for more options.
New Sample Projects for PowerTCP FTP for .NET have been added to include .NET Core 2.0 projects, referencing the Dart.Ftp.Standard dll. Look for the to identify these samples.
Code Examples
The FTP component frees you from having to write 'spaghetti code' that jumps from function to function using asynchronous 'Begin' and 'End' methods, just so you can perform your work and update the UI at the same time.
Asynchronous methods are not necessary. You do your work in one function and use the 'Start' method to execute it on a worker thread without freezing the interface. Component events are raised on the UI thread, eliminating the need to write delegates and call 'Invoke' from the worker thread.
To the right is a side-by-side comparison between code using PowerTCP FTP for .NET and code using a competitor's product. The task is to log into an FTP server, upload a directory, and log out, while updating status in a log window and progress bar. Take a look at the code and ask yourself, "Which code would I rather write and maintain?"
These code snippets can be copied and pasted into your project.
Code Snippet | Description |
---|---|
File Listing | How to retrieve a file listing. |
Download a File | How to download a file. |
Upload a File | How to upload a file. |
Download Multiple Files | How to download a directory tree using a single method. (MGET) |
Example Projects
Example are working applications demonstrating FTP for .NET components in C#, VB.NET and PowerShell. Source code included.
Example Name | Description |
---|---|
ListView Client | A medium size Windows Forms application demonstrating storing and retrieving files, displaying file transfer progress, aborting transfers, and retrieving and displaying listings. |
Streaming Transfer | Demonstrates how to retrieve and store a file data directly from/to memory using a Stream. |
Parallel Transfers | Demonstrates how to to transfer several files simultaneously, using multiple concurrent FTP sessions. |
FTP Web Service | Demonstrates a web service that utilizes the Ftp component. |
FTP WCF Service | Demonstrates a Windows Communication Foundation (WCF) service that utilizes the Ftp component. |
Task-Async ListView Client | Implements the functionality of the ListView Client using the 4.5 .NET Framework System.Threading.Tasks.Task.Run() method. This obsoletes the Start and Marshal methods along with the UserState, Listing, Copy, and Error events, while allowing for a simple multithreaded design. |
WPF Listview Client | Similar to the ListView Client, but written using Windows Presentation Foundation (which uses DirectX) |
Console Ftp | Demonstrates retrieving a file in a simple single-thread console application. |
PowerShell Get and Put | Demonstrates how to upload and download files from a scripting application. |
Web Service | Dynamically gets a file from an FTP server on behalf of a consumer. |
Upload with Streams | How to upload dynamically generated data to a server using streams. |
WCF Service | Dynamically gets a file from an FTP server on behalf of a consumer. |
ListView Client Web Application | Demonstrates a web-based FTP client. |
See all PowerTCP FTP for .NET Code Examples
Get a Directory Listing Example
This example demonstrates using the FTP control to obtain a directory listing from an FTP server.
Ftp ftp1 = new Ftp();
//Connect and log into the server, and get a listing
ftp1.Connect(myServer);
ftp1.Authenticate(myUsername, myPassword);
Listing listing = ftp1.List("", "", ListType.Full);
//Display each list entriy in the console
foreach (ListEntry entry in listing)
Console.WriteLine(entry.Text);
//Logout of the server
ftp1.Close();
To download a trial please visit the PowerTCP FTP for .NET product page.
See all PowerTCP FTP for .NET Code Examples
Download a File Example
This example demonstrates using the FTP control to retrieve a file using the FTP GET command.
Ftp ftp1 = new Ftp();
//Connect to the FTP Server and authenticate
ftp1.Connect(myServer);
ftp1.Authenticate(myUsername, myPassword);
//Retrieve a file.
ftp1.Get("testfile.txt", Path.Combine(myLocalDirectory, "testfile.txt"), Synchronize.Off);
//Close the connection.
ftp1.Close();
To download a trial please visit the PowerTCP FTP for .NET product page.
See all PowerTCP FTP for .NET Code Examples
Upload a File Example
This example demonstrates using the FTP control to upload a file using the FTP PUT command.
Ftp ftp1 = new Ftp();
//Connect to the FTP Server and authenticate
ftp1.Connect(myServer);
ftp1.Authenticate(myUsername, myPassword);
//Retrieve a file.
ftp1.Put("testfile.txt", "testfile.txt", Synchronize.Off);
//Close the connection.
ftp1.Close();
To download a trial please visit the PowerTCP FTP for .NET product page.
See all PowerTCP FTP for .NET Code Examples
Download Multiple Files Example
This example demonstrates using the FTP control to retrieve multiple files using the FTP GET Command.
Ftp ftp1 = new Ftp();
//Connect to the FTP Server and authenticate
ftp1.Connect(myServer);
ftp1.Authenticate(myUsername, myPassword);
//Retrieve a list of txt files to transfer.
List
//Retrieve the files.
ftp1.Get(filesToGet, string.Empty, myLocalDirectory, Synchronize.Off);
To download a trial please visit the PowerTCP FTP for .NET product page.
Product Release History for PowerTCP FTP for .NET
The following is a list of public releases for all components shipped with PowerTCP FTP for .NET (Latest Release 2023-4-3)
PowerTCP FTP for .NET
Current Version: 6.1.1.3
6.1.1.3 Released: 2023-4-3
Dart Communications is pleased to announce the release of PowerTCP FTP for .NET 6.1.
Changes in this release:
- Licensing has been refactored. Please review documentation here.
- Support for .NET Framework 3.5 has been dropped and a minimum of .NET Framework 4.5 is now required. (Please contact sales@dart.com if you require an assembly for a previous version of .NET Framework.)
- Improved Visual Studio Integration.
- Full support for .NET 7.
6.0.0.0 Released: 2022-1-18
Dart Communications is pleased to announce the release of PowerTCP FTP for .NET 6.0 with support for .NET 6.0.
New features and changes in this release:
- Dart.Ftp.60.dll has been added to natively support .NET 6.0 on all operating systems that support .NET 6.0.
- As .NET 6.0 is the newest LTS release .NET 5.0 is no longer supported and Dart.Ftp.50.dll has been discontinued.
5.0.0.0 Released: 2021-11-17
Dart Communications is pleased to announce the release of PowerTCP FTP for .NET 5.0 with support for .NET 5.0.
New features and changes in this release:
- Dart.Ftp.50.dll has been added to natively support .NET 5.0 on all operating systems that support .NET 5.0.
- Dart.Ftp.dll now targets .NET 4.0.
- .NET 3.5 and previous Frameworks are no longer supported, you may request a legacy version via sales@dart.com if support for legacy frameworks is required.
4.7.8.2 Released: 2020-12-16
Product fixes in this release:
- Fixed a minor compatibility issue so that Dart.Ftp.Standard.dll can be used with .NET 5.0.
4.7.7.1 Released: 2019-06-20
- Fixed an issue that resulted in string resources not being available when certain exceptions occurred. (1075)
- Fixed an issue that resulted in .NET Standard assemblies being unusable in newer .NET Core preview releases.
4.7.6.1 Released: 2018-09-21
- The UsePWD property was added. When set to false no PWD commands will be sent to the server and all directory and path information returned from commands will be relative instead of absolute.
4.7.5.0 Released: 2018-08-30
- Licensing Error Exception text has been updated.
4.7.4.3 Released: 2018-03-06
- Added support for .NET Standard 2.0 and .NET Core 2.0
- New .NET Core 2.0 sample projects, referencing the Dart.Ftp.Standard dll
- Updated trial license operation for use on .NET Standard-compatible platforms
- Details regarding trial operation for Dart.Ftp.Standard.dll can be found in the Licensing and Trial Operation topic in the included help documentation
4.7.3.0 Released: 2017-03-08
- Visual Studio 2017 compatibility.
4.7.2.0 Released: 2016-12-07
Product fixes in this release:
- An issue where listings would fail when the PWD command is unsupported on the server has been resolved. (918)
- An issue where closing a secure FTP connection on Windows 10 could result in a hard crash has been resolved. (973)
4.7.1.0 Released: 2016-04-26
Product fixes in this release:
- Refactored AUTH command operation when FtpSecurity.Encryptcontrol is set to Encryptcontrol.Explicit. Advertised FTP server features are now used to choose the appropriate AUTH command parameter. If no features are available prior to login then the component will default to AUTH TLS. Added additional enumerations to EncryptControl to provide fine control over which AUTH command parameter is to be used if automatic detection is not desired. (868)
4.7.0.0 Released: 2016-03-01
- The Ftp.Type property was added so that the current data channel transfer type can be determined.
- The Ftp.DateTimeFormatInfo property was added to support servers that use non-standard timestamps. A Listing constructor overload that accepts DateTimeFormatInfo as a parameter was also added. Please see the documentation of Ftp.DateTimeFormatInfo for more information.
- Developer note: The Ftp.DateTimeFormatInfo property replaces the Listing.Months property which has been removed.
- Various improvements to illegal file character handling.
- The FtpSession.Autosize property has been added so that the sending of the SIZE command prior to a file transfer can be toggled.
- 6TO4 support added.
- A DataIsBusyChanged event was added to signify when a data channel has started or ceased transferring.
- If MFMT is not advertised as an available mechanism to modify date time then MDTM will be tried.
- Product fixes in this release:
- The FTP control channel is now correctly monitored for error responses from the server during transfers. (721)
- IPv6 addresses are now properly enclosed in brackets when used as a URI or URL. Ex: Destination URL via a proxy connection. (738, 745)
- Ftp.Session.LocalEndpoint is now set to the correct address family if the proxy address family differs from the endpoint address family. (739, 746)
- When using Ftp.Put(List localFileSystemInfos, string localRoot, string remoteRoot, Synchronize Sync, file destination now correctly defaults to "filename" in the current directory when remoteRoot is "". (761)
- Ftp.Get will no longer cause a file to stay locked if an exception is thrown during a transfer. (770)
- All SSL connections will now use close-notify during the closing of the connection. (773)
4.6.1.0 Released: 2014-12-19
Improved handling of files and directory names when they contain illegal characters on the local file system.
Improved firewall transversal for data connections. (See DataConnectType.PassiveOverrideAddress in the documentation for details)
Improved support for CAS level 2 applications in medium trust environments.
Improved handling of connection failures.
A ConnectTimeout property was added to the FtpSession class.
Product fixes in this release:
- Resolved an issue where LIST commands may fail to timeout correctly. (TFS362)
- A compatibility issue with FileZilla FTP Server where downloads would not resume correctly was resolved. (TFS577)
- Resolved an issue where a "System.ArgumentException: An item with the same key has already been added" could be thrown when instantiating FTP objects on multiple threads. (TFS585)
4.6.0.1 Released: 2013-11-12
- Trial operation has changed. In addition to the existing 7-day runtime trial license, a 30-day development trial license will also be enforced.
Product fixes in this release:
- Removed use of the temporary file directory when retrieving a file from an FTP server. (TFS195)
- Ensured that the socket timeout is always being set correctly on the data channel for transfers when using PORT. (TFS270)
4.5.5.2 Released: 2013-01-07
A Response property has been added to the CopyResult object to provide the server response for individual file transfer requests.
Product fixes in this release:
- The count of the items in the List property of the ProgressEventArgs now reports 1 instead of 0 when transfering a single file. (TFS54)
- The transfer type will now correctly reset when the GetSize method is called and the SIZE request fails. (TFS62)
- The FtpProtocolException type has been made public. (TFS63)
4.5.4.3 Released: 2012-10-24
Trial licensing operation updated.
4.5.3.3 Released: 2012-10-18
- Updated for Visual Studio 2012 integration and Windows 8 compatibility.
Product fixes in this release:
- Addressed a globalization issue that prevented correct operation for systems using the following language cultures: Azeri (az), Azeri-Latin (az-Latn), Azeri-Latin-Azerbaijan (az-Latn-AZ), Turkish (tr), Turkish-Turkey (tr-TR) (TFS31)
4.5.2.1 Released: 2012-07-12
Product fixes in this release:
- Fixed a licensing issue with web service applications.
- Updated the title bar of licensing messages to not indicate a product is in trial when it is licensed.
4.5.1.0 Released: 2012-06-27
- Updated trial operation behavior and removed obstacle to using product in .NET Framework 4.5.
4.5.0.0 Released: 2012-05-03
- FTP for .NET can now be used in MONO. Tested with MONO version 2.10.5.
- Added support for EBCDIC file types.
- The Progress event now provides more data, including completion percentage of a file or multi-copy operation.
- A new ListView sample for ASP.NET.
Product fixes in this release:
- There is no longer an indefinite wait when a server sends a 4xx response to an Append command in passive mode. (5545)
- When a List call is performed with a specified pattern, the returned ListEntry objects no longer include the pattern as part of their Name. (5550)
- Filenames are now correct after a NLST (List with a type parameter of ListType.Names). (5551)
- A Get(List, ...) call with an empty remoteRoot parameter no longer results in downloaded filenames with a missing first character. (5570)
- The returned CopyResults from a Get(List, ...) call now provide the correct LocalPath, instead of a temporary path. (5572)
- The Progress event now provides the correct LocalPath during a Get, instead of a temporary path. (5606)
- ListDirectoryTree now works when remote filenames include colons. (5608)
- Fixed Mode Z compression. (5620)
4.4.2.3 Released: 2011-10-06
Product fixes in this release:
- Disabling FtpSession.AsciiExtensions now works.
4.4.1.0 Released: 2011-07-22
Product fixes in this release:
- The licenses.licx error message has been corrected. (5485)
4.4.0.10 Released: 2011-06-29
-
PowerTCP FTP for .NET is re-designed to be the most advanced FTP class library available, yet remains as easy to use as ever.
Dart Communications is pleased to announce the release of PowerTCP FTP for .NET version 4.4. This release features an innovative, elegant new design, making TCP/IP-based communications easier to work with than ever before. This enhanced library requires fewer resources, provides more flexibility, and elicits code that is easier to re-use and maintain.
- Implement state-of-the-art multi-threaded operations
- Create sophisticated high-performance FTP applications
- Include SSL for airtight security.
Some of the exciting highlights include:
- Promotes a Model-View-Controller design, for separation of protocol logic from the user-interface
- Improved Use of .NET Features including generics and IPv6
- Streamlined blocking functions that can easily be used asynchronously as well
- SSL support for secure communications from a single method call
- Support for Windows applications, services, WCF services, ASP.NET web services and applications.
- Support for Windows Presentation Foundation (WPF) applications
- Serializable session object for easily persisting runtime state information
- Hordes of additional features including automatic listing parsing, recursive wild-card transfers and deletions, and synchronization.
- Many sample projects for C#, VB.NET, C++/CLI, including ASP.NET
- Comprehensive MS Help 2.0 and Help Viewer integrated documentation
- Stand-alone and online documentation also provided
- .NET Framework 4 Client Profile compatible
- 64-bit OS support
-
Tips for Transitioning to Version 4
This list outlines the coding changes needed when upgrading to version 4. For more on the benefits of the new model, please see PowerTCP 4.
No more Async methods
Previous versions of PowerTCP and PowerSNMP implemented an event-driven model for asynchronous use. In addition to a synchronous method, each operation had an asynchronous "BeginXXX" method and corresponding "EndXXX" event. For example, to receive data asynchronously using the Tcp component, the developer called BeginReceive and waited for the EndReceive event to fire with data. In the meantime, other code was free to execute.
In the new model, asynchronous methods have been eliminated. Instead, the developer uses one or more synchronous methods (for example, "Receive") within a straight blocking function, and then passes a delegate referring to this function to the component's Start method. The Start method then executes the function on its own worker thread.
Marshaling data back to the UI thread
It is often necessary to pass information from a worker thread to an element on the UI thread. The new model includes Marshal functions to simplify these cross-thread operations. Each Marshal overload corresponds to an event handler that executes on the UI thread and provides access to data passed using the Marshal method.
No more "pseudo-blocking"
Methods in the new model are now true-blocking calls. In previous versions, methods were "pseudo-blocking," meaning that events could be raised while the call blocked. With the new model, methods are tighter and streamlined for better performance. Because the UI is blocked if a method is called from within the UI thread, the Start method should be used in UI environments so the user-interface is not blocked and events can fire.
3.0.7.0 Released: 2011-01-13
Product fixes in this release:
- A login error introduced in version 3.0.6.2 was addressed. "An address incompatible with the requested protocol was used" error would occur under certain conditions if the server supported IPv6. (5374)
3.0.6.2 Released: 2010-09-21
- PowerTCP FTP for .NET has been updated with VS 2010 integration.
- PowerTCP FTP for .NET now supports .NET Framework 4 Client Profile.
Product fixes in this release:
- Fixed a Null Reference exception that would occur when a server disallowed non-passive transfers. (5134)
- Fixed an issue where ProtocolViolation exception would occur when multiple listings or files were retrieved in succession. (5305, 5334)
3.0.5.1 Released: 2009-08-17
- The Ftp component now supports UTF8 filenames.
- The Put and Get overloads for transferring multiple files now include a boolean parameter for creating empty folders.
Product fixes in this release:
- The BeginDelete(string, bool, bool, object) overload now works correctly. (4885)
- Fixed condition which would cause a "Control connection unexpectedly closed" error. (4888)
- More descriptive error messages are presented when transfers fail. (4901)
- Failed List commands no longer cause subsequent commands to timeout. (4946, 4898)
- Fixed a condition that could result in a timeout when the server ran on the client machine. (4971)
- Data connections now use the specified Ftp.Client value as the local address. (5088)
- Relative paths now work as localRoot parameters in Put calls. (5101)
- Explicitly secure data connections no longer timeout with vsFTPd servers. (5114)
3.0.4.0 Released: 2008-07-31
Product fixes in this release:
- Fixed timeout issue that would occur after using the Get overload that returns a Stream.
3.0.3.3 Released: 2008-07-30
New Ftp.BeginDelete and Ftp.BeginInvoke overloads to parallel Ftp.Delete and Ftp.Invoke overloads.
Product fixes in this release:
- A CLS Compliance Warning is no longer raised when a VS.NET 2003 project is converted to a 2005 project. (4556)
- A stream upload on a fast machine over a slow network connection will no longer result in a truncated file on the server. (4642)
- The first file in a group of files uploaded to a non-existent directory on a VxWorks server is now successfully transferred. (4644)
- Uploading files to a non-existent directory in Passive mode no longer produces a null reference exception. (4646)
- Filenames that contain consecutive spaces in listings are now handled correctly. (4687)
- Component now sends PROT command for Implicit security servers that require it. (4761)
- Corrected condition which could garble multibyte characters within Unicode listings. (4782)
3.0.2.0 Released: 2007-10-09
Product fixes in this release:
- Can now delete files that contain backslashes on a UNIX system. Addresses issue introduced in version 3.0.0.2. (4413)
- Corrected condition that caused an exception to be thrown when calling ExpandRemoteFiles. (4464)
3.0.1.0 Released: 2007-09-13
Product fixes in this release:
- Corrected MGet sample project so that it no longer contains the source code for the MPut project. Affected CSharp sample only.
- No longer send actual blocksize when issuing the PBSZ command. Several servers had problems with this, so now 'PBSZ 0' is always sent. (4370)
3.0.0.2 Released: 2007-08-03
- Added the Compression property to allow standard, mode z and 'Archive transfer modes. See product page for details on this property.
- Merged secure functionality from old Secure FTP for .NET product into current FTP for .NET product.
- ListEntry property is now writable, so that when an unknown listing is encountered, the user can set the ListEntry properties himself after parsing the raw text of the listing.
- Added overload to delete method that allows deletion of single file rather than a wildcard that could resolve to multiple files.
Product fixes in this release:
- Help file updated to show that an empty file array returned from the Delete method means that none of the requested files were deleted. Also added a new overload for Delete that takes a single filename. (2326)
- Fixed condition that caused FileType to be incorrect when an unexpected 550 response code was received from the NLST command. (4095)
- Now properly recover from unexpected response code of 200 when from CWD command. (4177)
- Restart now works properly when using overloads that deal with streams instead of filenames. (4265)
- Delete method now allows use of both backward and forward slashes in the search pattern. (4413)
2.3.3.0 Released: 2006-08-11
- FTP for .NET now supports 64 bit environments.
Product fixes in this release:
- FileType is now reset when Windows Firewall is on (2799)
- For methods that send multiple commands, a more relevant exception is raised (3344)
- Thread count no longer increases with each PORT transfer (3593)
- The component now works with secure servers that use certificates only for authorization (no USER/PASS) (3605)
2.3.2.0 Released: 2005-11-01
Product fixes in this release:
- No longer send 'REST 0' if Restart = false
- Added support for HTTP Connect proxy servers
- Corrected problem where Invoke would fail when the Connection.Connect() method was used
- Addressed issues where PASV mode connect would fail
- Addressed issue where PORT mode listener would keep hold of it's socket
2.3.1.0 Released: 2005-08-02
- Corrected problems that prohibited usage with Visual Studio 2005 beta 2 and made sure that all samples compiled and ran after being converted
Product fixes in this release:
- Corrected problems that prohibited usage with Visual Studio 2005 beta 2
2.3.0.0 Released: 2005-05-10
We strive to continually upgrade our products with new features. Besides improving interoperability with more server implementations, this release adds the following new properties:
- UseControlAddressForPassive property. Besides setting a record for our use of Hungarian notation, this property allows you to override the address returned from the server when the PASV command is sent. The default is false. If set to true, the IP address of the control connection will be used for establishing the data connection. This is used to establish a data connection to a firewall when the firewall was not smart enough to correctly modify the server's response to the PASV command.
- UseIpSync property. The XP SP2 firewall enhancement does not respond correctly to the IP/SYNC signal used for aborting a file transfer (neither do many servers). Through the use of this property, your users can control the use of this feature when aborting a file transfer.
- MaxTransferRate property. Since FTP file transfers can be processor intensive, customers have asked us to throttle the transfer speed. If the value of this property is below the actual transfer rate, the worker thread will be put to sleep each second to slow the actual rate to match this value.
Product fixes in this release:
- Deep recursive directories greater than 512 characters now supported (1231)
- MaxTransferRate property added to throttle transfers (1731)
- UseControlAddressForPassive property added to allow bypassing of "dumb" or encyrypting firewalls (1928)
- Fixed problem with asynchronous stream STOR (1955)
- Fixed recovery from situation where all ports in local port range are in use (1974)
- Fixed problem using Invoke() after RawConnect() (2112)
- Fixed interoperability issue with server returning 220 for PASS (2113)
- Fixed interoperability issue with Titan server that does not close control connection (2117)
- Improved listing parsing for UNIX servers (2145)
- Fixed interoperability issue with server that returns LF instead of CRLF (2466)
- UseIpSync property added to control the use of IP/SYNC when aborting a file retrieve (2613)
- AbortTransfer() now send ABOR when storing files, for compatibility with some server (2670)
- Improved exception handling doing a GET when local disk if full (2677)
- Modified FtpWebRequest.Close() to close control connection (2764)
- ConnectedChanged event is now properly raised when control connection is closed (2827)
- 0-length files can now be retrieved (3081)
- GlobalScape persists marker, so reset to 0 for transfers (3090)
2.2.5.0 Released: 2003-10-31
This release is a major maintenance update. The version number of the installation kit has been incremented to match the assembly to minimize confusion. For more information, please see the Readme file included with the installation. All the samples have been revised and ASP.NET samples are now included with installation, rather than just from the Web. Plus, all ASP.NET samples now automatically create virtual directories upon installation, making ASP.NET testing easier
Product fixes in this release:
- Fixed a UNIX list parsing problem (1375)
- Improved error handling when receiving a 550 errors in certain circumstances (1411)
- Added support for accepting 231 as valid response to USER (1611)
- ConnectedChange Event is properly raised when network cable is disconnected (1675)
- Fixed a problem when sending a "List -IR path" (1698)
- Improved unexpected Close condition error handling (1699)
- Fixed a problem with aborting using a Proxy (1729)
- Adjusted error messages with FtpFile.Exception (1779)
- Fixed a problem when logging in again after an Abort (1784)
- Adjusted error message with Abort (1786)
- Fixed a file lock situation when Put fails on Login (1789)
- Fixed an unhandled exception when entering an invalid hostname with asynch login (1797)
- Fixed a problem with certain PASV responses (1907)
- Fixed a problem where ClientDataPort would not continue checking after failure (1969)
- Fixed a problem with truncated MS-DOS style listing (1970)
- State now preserved when an exception results with BeginPut (2020)
1.2.2.0 Released: 2002-11-25
- This update enhances error handling when working with servers that return multiple error messages. Also, the FTP for .NET component now supports multi-gigabyte files, removing any programmatic file size limitation (this does not include OS and server limits). To accommodate this change the Size property of the ListEntry class has been changed from an integer to a long. Finally, Visual Studio .NET 2003 compatibility support has been included along with a Help 1.3 version of the documentation for those only using the .NET Framework without Visual Studio
2.0.3.0 Released: 2002-11-25
Product fixes in this release:
- Fixed Trace that was broke in previous release
- Asynchronous operations now return IAsynchResult object
- Tested with Visual Studio .NET 2003
- Documentation now available in Help 1.3 format
- Added support for multi-gigabyte files
2.0.2.0 Released: 2002-10-23
Product fixes in this release:
- Error 550 from a server didn't properly throw an exception
- Fixed a bug with multiple Put commands
- Fixed a bug in the .Name property in the ListEntry Object
2.0.1.0 Released: 2002-08-27
Product fixes in this release:
- Add Microsoft licensing changes to support proper component use in Web Services and ASP.NET
- Changed the namespace to Dart.PowerTCP.Ftp
2.0.0.1 Released: 2002-05-31
Product fixes in this release:
- An abort of a directory delete will now properly occur
- More compatibility issues addressed with the SIZE command
1.1.0.0 Released: 2002-05-17
- PowerTCP FTP for .NET has recently been updated to provide additional functionality and increased exception handling capability. Go to www.dotnet.dart.com/dotnet/ftp.asp for more information on PowerTCP FTP for .NET and a free trial.
Version 1.1 Highlights
- NEW Delete() and BeginDelete() methods delete directories, files (using wild-cards), and recursive directory trees. Be careful with this!
- NEW BusyChanged event notifies you when operations start and end, providing a convenient signal for enabling/disabling UI components
- Additional exception information is now captured for wild-card file transfers.
- This is a NO-CHARGE upgrade for all customers who purchased version 1.0!
2.0.0.0 Released: 2002-05-17
Product fixes in this release:
- Compatibility with legacy FTP servers that don't support the SIZE command addressed
- Additional exception information is now captured for wild-card file transfers
- MGET no longer truncates the first two characters of the filename
- WSFTP MPUT compatibility with non-existant directories fixed
- WSFTP CWD compatibility addressed
- BusyChanged event notifies you when operations start and end, providing a convenient signal for enabling/disabling UI components
- Dispose will no longer cause a lockup in certain situations
- Delete() and BeginDelete() methods delete directories, files (using wild-cards), and recursive directory trees
- DLL version changed to 2.0 from 1.0 to indicate a non-backwards compatible interface change
- Added TransferAborted to the FtpFileStatus enumeration
- Will now allow an abort during login process
- Event handling adjusted for better timing
- Now remove trailing "/" after issuing an RMD command
- Login will no properly occur if previous attempt was not authenticated
- Removed delay after a dispose occurs
- Connected state now properly changes when a server times out
PowerTCP FTP for .NET Downloads
for .NET Standard 2.0 (supported implementations can be found here) .NET Framework 4.5-4.8
Download Windows Installer (product distribution; includes sample projects)
Download Sample projects (only)
- Add a NuGet Reference to your project.
- Open a command line prompt.
- Install the Dart License tool (.NET 6.1 required): dotnet tool install -g dotnet-dartlicense
- Run the Dart License tool and follow the on screen prompts to activate a trial.
Complete Feature List for PowerTCP FTP for .NET
Easy to Use in Any Type of Project
- Methods are simple blocking functions with little overhead
- Streamlined for integration into non-UI projects such as web sites and services
- Supports Windows Presentation Foundation (WPF) applications
- Start and Marshal methods provide asynchronous use for applications with a UI
- Perform simultaneous file transfers in multi-threaded applications
- Progress event is used to monitor and display transfer rate and advancement
- Log event is used to for logging and debugging
- Compatible with Client Profile projects
Includes the Features You Expect
- Upload and download files and directories
- Create directories
- Delete files and directories, including subfolders
- ASCII and binary transfers
- Passive and active transfers
- Set site-specific options and parameters
- Runs in .NET 2.0+ Frameworks
- Compliant with RFC 959 plus many extension standards
Plus Much More
- Parses listings into easy-to-use objects
- Throttle property can be used to limit bandwidth used
- Resume interrupted transfers
- Synchronize remote and local directories
- Stream interface for direct access to the data connection
- MODE Z On-the-fly ZLIB compression can be used to archive compressed files, or compatible servers can expand/compress files to minimize bandwidth used
- IPv6 support, including "dual stack sockets" to help migrate to IPv6
- Send custom commands
- Abort transfers without losing the control connection
- Transfer large (greater than 4 GB) files
- Customize List parsing to recognize non-English months
Why Buy PowerTCP FTP for .NET?
PowerTCP FTP for .NET features compared with .NET Framework 2.0/3.5/4.0 (Visual Studio 2005/2008/2010)
Feature | Visual Studio | PowerTCP FTP for .NET |
---|---|---|
"AUTH TLS" explicit encryption support | ||
Comprehensive explicit and implicit encryption | - | |
Support for single file and streaming data transfers | ||
Recursive wild-card directory file transfers and deletions | - | |
MODE Z "On-the-fly" ZLIB compression support | - | |
File listing parsing | - | |
Log event for session logging and debugging | - | |
Extensive firewall and proxy support | - | |
Transfer rate throttle | - |
"PowerTCP FTP for .NET is our 4th-generation FTP product, and includes many ease-of-use features that our customers have requested over the years. You won't find any FTP component that is more intuitive or better documented".
-- Michael Baldwin, President
FTP for .NET Security Features (FTPS)
- Secure (SSL 2.0, SSL 3.0, PCT, TLS 1.0, 1.1, 1.2) TCP communications supported
- Explicit and implicit FTPS support
- Secure the control (command) connection, the data connection, both, or neither
- Network Address Translation (NAT) router support for secure transfers
- Switch between secure and non-secure modes
- X509 certificate management
- Certificate callbacks allow for user-driven certificate validation
- Proxy support for SOCKS 4/5, HTTP CONNECT, OPEN, USER and SITE FTP
Looking for an SFTP (SSH FTP) Product?
PowerTCP FTP for .NET includes support for FTPS (FTP over SSL). For SFTP support see PowerTCP SSH and SFTP for .NET
See all PowerTCP FTP for .NET Code Examples
FTP ListView Client Example
The PowerTCP FTP for .NET FTP ListView Client example demonstrates many routine FTP functions:
- Put, Get and Delete files
- Navigate folders on the server
- Create and delete directories
- Report transfer progress information
- Log sessions to the interface and to disk
- Support popular FTP proxies
- Provide plenty of options such as compression and security
The PowerTCP FTP .NET FTP ListView Client example is included with a trial installation of PowerTCP FTP for .NET. To download a trial please visit the PowerTCP FTP for .NET product page.
Streaming Transfer Client Sample
See all PowerTCP FTP for .NET Samples and Code Examples
The PowerTCP FTP for .NET Streaming Transfer Client sample demonstrates many routine FTP functions:
- Expose the file data as a Stream in real-time
- Show transfer progress
- Include file and interface session logging
- Allow restarts and aborts
The PowerTCP FTP .NET Streaming Transfer Client sample is included with a trial installation of PowerTCP FTP for .NET. To download a trial please visit the PowerTCP FTP for .NET product page.
Parallel Transfer Client Example
See all PowerTCP FTP for .NET Samples and Code Examples
The PowerTCP FTP for .NET Parallel Transfer Client example demonstrates many routine FTP functions:
- Copy multiple files between client and server in parallel
- Perform Gets and Puts
- Provide a drag-and-drop interface
- Provide progress for each file
- Permit the user to cancel ongoing transfers
The PowerTCP FTP .NET Parallel Transfer Client example is included with a trial installation of PowerTCP FTP for .NET. To download a trial please visit the PowerTCP FTP for .NET product page.
FTP Web Service Example
See all PowerTCP FTP for .NET Samples and Code Examples
The PowerTCP FTP for .NET FTP Web Service example demonstrates many routine FTP and Web Service functions:
- Expose methods that consumer clients can interface with
- Retrieve a specified file from a specified server
- Utilizes methods optimized for use in environments lacking a UI
- Send the file to the consumer over a network
- Provide a service that is easy to update in a centralized location
The PowerTCP FTP .NET FTP Web Service example is included with a trial installation of PowerTCP FTP for .NET. To download a trial please visit the PowerTCP FTP for .NET product page.
FTP WCF Service Example
See all PowerTCP FTP for .NET Samples and Code Examples
The PowerTCP FTP for .NET FTP WCF Service example demonstrates many routine FTP and WCF Service functions:
- Expose methods that consumer clients can interface with
- Retrieve a specified file from a specified server
- Utilizes methods optimized for use in environments lacking a UI
- Send the file to the consumer over a network
- Provide a service that is easy to update in a centralized location
The PowerTCP FTP .NET FTP WCF Service example is included with a trial installation of PowerTCP FTP for .NET. To download a trial please visit the PowerTCP FTP for .NET product page.
Purchase Options
Customize your product and support options match your needs. Discounts are applied when products are purchased in multiples or within available product suites.
Have any questions about purchasing? See our Sales FAQ