Items can be copied or moved from one location to another using the CopyTo, CopyFilesTo, MoveTo, or MoveFilesTo methods. Both the source location/items can be located on an FTP server or any other type of folder supported by the Xceed FileSystem.
The following example demonstrates how to copy files located in a folder on an FTP server to another FTP server using the steps listed below:
Create an instance of the FtpConnection class to7 establish a connection between the client and the source FTP server. If you are using FtpConnection in a UI application, assign your form (or any other control that implements the ISynchronizeInvoke interface) to the SynchronizingObject property and call Application.DoEvents in an event; see the Events section below for an example of this.
Create an instance of the FtpConnection class to establish a connection between the client and the destination FTP server. If you are using FtpConnection in a UI application, assign your form (or any other control that implements the ISynchronizeInvoke interface) to the SynchronizingObject property and call Application.DoEvents in an event; see the Events section below for an example of this.
Create an instance of an FtpFolder which will represent the folder on the source FTP server from which to retrieve the files. If a folder name is not specified, the folder will represent the current working folder.
Create an instance of an FtpFolder which will represent the folder on the destination FTP server to which the files will be copied. If a folder name is not specified, the folder will represent the current working folder.
Call the FtpFolder's CopyFilesTo method to copy the files from the source FTP server to the destination FTP server.
Dispose of the FtpConnections once the file transfer is completed by calling their Dispose methods or, in C#, by creating the FtpConnections instances in using blocks. If an instance of an FtpConnection object is not disposed of, connections with the FTP server may remain active until the FTP server times-out or the garbage-collector passes.
VB.NET | Copy Code |
---|---|
|
C# | Copy Code |
---|---|
|
All methods exposed by the Xceed FileSystem's FileSystemItem, AbstractFolder, AbstractFile, and derived classes have an overload that can be used when events are required.
If you are using FtpConnection in a UI application, assign your form (or any other control that implements the ISynchronizeInvoke interface) to the SynchronizingObject property and call Application.DoEvents in an event.
With the exception of the FtpConnection's ParsingListingLine event, events can be handled by creating an instance of the FileSystemEvents class and subscribing to the desired events. For example:
VB.NET | Copy Code |
---|---|
|
C# | Copy Code |
---|---|
using Xceed.FileSystem; |
Do you want the FTP server to initiate the data connection rather than the client-side? Set the FtpConnection's PassiveTransfer property to false.
Do you want to decrease or increase the period of time after which an FTP operation should timeout? Change the value of the FtpConnection's Timeout property.
Do you want to create a log file of the FTP process? Set the FtpConnection's TraceWriter property.
Do you want to filter (specify specific files and folders) the items that are to be copied? Use filters.
Do you want to display progress information? Create an instance of the FileSystemEvents class and handle the ByteProgression and/or ItemProgression events.
Do you want to display progress information when a folder is being scanned? Create an instance of the FileSystemEvents class and handle the ScanningFolder event.
Do you want to intervene when an error occurs with one or more of the items being manipulated? Create an instance of the FileSystemEvents class and handle the ItemException event.
Do you want to prevent routers from prematurely closing the command channel while a long data transfer is taking place. Set the KeepAliveInterval property.
Do you want quick and easy access to FTP functionalities in the same style as the ActiveX version of the Xceed FTP Library? Use the FtpClient class instead. (Note: The AsyncFtpClient should now be considered obsolete. Instead, use the FtpClient class, assigning a value to its SynchronizingObject property.)